sftp ssh服务分离

sftp ssh服务分离,第1张

一、分离SSH和SFTP服务

系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。

1、 拷贝/usr/lib/systemd/system/目录下的sshdservice文件,放到/etc/systemd/system/目录下,命名为:sftpdservice
cp /usr/lib/systemd/system/sshdservice /etc/systemd/system/sftpdservice

2、 拷贝/etc/pamd/目录下的sshd文件,放到同目录,命名为:sftpd
cp /etc/pamd/sshd /etc/pamd/sftpd

3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

4、 对service和rcsftpd进行软连接
ln -sf /usr/sbin/service /usr/sbin/rcsftpd

5、 对sshd和sftpd进行软连接
ln -sf /usr/sbin/sshd /usr/sbin/sftpd

6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp
cp /etc/sysconfig/sshd /etc/sysconfig/sftp

7、 拷贝/var/run/目录下的sshdpid文件,放到同目录,命名为:sftpdpid
cp /var/run/sshdpid /var/run/sftpdpid

1、 修改/etc/systemd/system/目录下sftpdservice文件
vim /etc/systemd/system/sftpdservice

[Unit]

Description=sftpd server daemon

Documentation=man:sshd(8) man:sshd_config(5)

After=networktarget sshd-keygenservice

Wants=sshd-keygenservice

[Service]

Type=notify

EnvironmentFile=/etc/sysconfig/sftp

ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-usertarget

2、 修改/etc/ssh/目录下的sftpd_config文件
vim /etc/ssh/sftpd_config
具体修改如下:
Port 22 改成Port 指定端口

改成
PermitRootLogin no
就是取消该行的注释,并将yes改成no,这行参数的目的是拒绝root用户登录

改成
PidFile /var/run/sftpdpid
就是取消该行的注释,并将sshdpid改成sftpdpid

Subsystem sftp /usr/libexec/openssh/sftp-server
注释

Subsystem sftp internal-sftp
Match User sftpuser
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

3、 清空/var/run/目录下的sftpdpid文件内容

4、 添加sftp的专用账户
useradd sftpuser
passwd sftpuser
usermod -s /bin/false sftpuser

5、 禁用selinux
setenforce 0

6、 重启sftpd服务
systemctl daemon-reload
systemctl start sftpd

管理服务

SSH基础服务,SSH是远程连接Linux,管理Linux的服务。
Secure Shell Protocol简写SSH 安全的shell协议
使用的默认的端口为22(一台机器的不同功能就用端口区分)

ssh参数:
-p 指定端口
格式:命令 -p 端口 用户@IP相当于ssh IP

scp命令参数:
-P端口
-r递归
-p保持属性
-l 限制速度
推:
scp -P 22 -rp /data root@1721617:/tmp
scp -P -rp /data 1721617:/tmp

scp -P 22 -rp root@1721617:/data /tmp
scp -P -rp 1721617:/data /tmp
对比下scp和rsync
scp每一次都是全量考本,加密拷贝。
rsync第一次全量拷贝,远程shell也是加密拷贝

sftp命令:加密的ftp服务,默认缺点不能锁定家目录。
ftp:vsftp。

sftp服务也支持windows ftp客户端:
winscp,flashftp,xshell也支持

常规和服务器交互数据文件:
rz/sz 属于lrzsz

ssh服务配置:
s

使用用户名密码登录

不需要密码登录,使用密钥文件就可以连接服务器。

实践密钥认证:
项目实践:批量管理、批量分发内容项目

1、基于root用户做Linux之间的秘钥认证。
2、生成密钥对(去超市买把锁),不需要指定服务器。
3、在61上生成密钥对(方便)。

4、把锁放到7/8上

C6:

5、ssh-copy-id:原理

6、测试远程执行命令:

7、写个脚本

8、开发脚本实现批量管理服务器:

9、批量发文件:

复杂分发文件脚本:

SSH批量管理如何一键完成:
一键创建及分发秘钥:

在左窗格中,单击“接收端口”节点,在右窗格中,右键单击你希望将新的接收位置与其关联的接收端口,然后单击“属性”。在“接收端口属性”对话框的左窗格中,选择“接收位置”,然后在右窗格中单击“新建”以创建新的接收位置。在“接收位置属性”对话框的“传输”部分中,从“类型”下拉列表中选择“SFTP”,然后单击“配置”以配置接收位置的传输属性。在“SFTP 传输属性”对话框的“常规”选项卡中,执行以下 *** 作:�0�2 使用此选项 执行此 *** 作 ConnectionLimit指定服务器允许的并行打开的最大连接数。0 表示无限制。PollingInterval指定适配器轮询服务器的时间间隔。若要连续轮询,请将此值设置为零。默认值:零单位指定所指定的轮询间隔的单位,例如,秒、分钟、小时或天。默认值:秒AccessAnySSHServerHostKey如果设置为 True,则接收位置接受来自服务器的任何 SSH 公共主机密钥。如果设置为 False,则接收位置使用服务器的指纹进行身份验证。你在 SSHServerHostKeyFingerPrint 属性中指定指纹。默认值:FalseClientAuthenticationMode指定接收位置用于对连接 SSH 服务器的客户端进行身份验证的身份验证方法。如果设置为“密码”,则必须在“密码”属性中指定值。如果设置为 PublicKeyAuthentication,则必须在 PrivateKey 属性中指定用户的私钥。此外,如果该私钥受密码保护,则还要为 PrivateKeyPassword 属性指定密码。默认值: 密码密码如果将 ClientAuthenticationMode 设置为“密码”,则指定 SFTP 用户密码。PrivateKey如果将 ClientAuthenticationMode 设置为 PublicKeyAuthentication,则指定 SFTP 用户的私钥。便笺 该私钥必须是指定的 pkf 文件。PrivateKeyPassword指定私钥密码,如果在 PrivateKey 属性中指定的密钥要求这样做。SSHServerHostKey指定安全 FTP 服务器的 SSH 公共主机密钥。用户名指定安全 FTP 服务器的用户名。FileMask指定在从安全 FTP 服务器检索文件时要使用的文件掩码。FolderPath指定安全 FTP 服务器上可供接收位置从中检索文件的文件夹路径。端口指定在其上进行文件传输的安全 FTP 服务器的端口地址。ServerAddress指定安全 FTP 服务器的服务器名称或 IP 地址。单击“确定”。

第一、FTP协议

FTP是TCP/IP协议组中的协议之一,TP协议由两个部分组成:1、FTP服务器,用来存储文件;2、FTP客户端,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

默认情况下FTP协议使用TCP端口中的20和21这两个端口。21端口用于传输控制信息,而是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用被动模式则具体使用哪个端口要服务器端和客户端协商决定。FTP传输模式分为两种:

①主动模式

FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PROT命令包含了客户端用什么端口接收数据。在传输数据的时候,服务器端通过自己的TCP
20端口连接至客户端的指定端口发送数据。

②被动模式

在建立控制通道与主动模式相似,但建立连接后是Pasv命令。FTP服务器收到Pasv命令后便随机打开一个高端端口并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。

第二、SFTP协议

SFTP是SSH File Transfer
Protocol的缩写,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包含中,已经包含了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程来完成相应的连接和答复 *** 作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

第三、二者的主要区别

链接方式:FTP使用TCP端口21上的控制连接建立连接。而SFTP是在客户端和服务器之间通过SSH协议建立的安全连接来传输文件。

安全性:SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。

效率:SFTP这种传输方式使用了加密解密技术,所以传输效率比普通的FTP要低很多。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12668954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存