SSH
1.#systemctl restart sshd[启动服务]
SSH服务的配置文件位于 SSH客户端配置文件位于
/etc/ssh/sshd_config /etc/ssh/ssh_config
sshd配置文件概述:
1.设置SSH服务监听的端口号 指定允许的用户ssh在sshd_config中最下行加入
Port 22 AllowUsers 用户名
2.设置使用SSH协议的顺序 指定用户不允许使用ssh
Protocol 2,1 DenyUsers 用户名
3.设置SSH服务器绑定的IP地址 指定某个账户来自指定的IP登录
ListenAddress 0.0.0.0 AllowUsers 用户名@ip_address
4.是否允许root管理员登录[最好不]
PermitRootLogin yes
5.设置是否允许空密码用户登录
PermitEmptyPasswords on
6.设置是否使用口令认证方式
PasswordAuthentication yes
7.是否允许用户使用X程序
X11Forwarding yes
8. 是否允许用户使用ssh的子系统
Subsystem /usr/local/sbin/sftpd
4) 指定允许IP连入ssh
#vi /etc/hosts.allow
sshd:192.168.0.1:allow
5) 拒绝所有IP链接
#vi /etc/hosts.deny
sshd:ALL
4)与5)两个文件都写入,则表示仅允许192.168.0.1允许链接ssh
SSH的使用
1. 登陆远程主机
#ssh username@remote_hostname
例:#ssh snow@192.168.1.123
2. 登陆远程主机并启用远程主机图形程序[要求:两台主机均为GUI模式]
#ssh -X username@remote_hostname
例:#ssh -X snow@192.168.1.123
------SSH 基础秘钥方式登陆远程主机-------
1. 在当前用户家目录下生成秘钥
#ssh-keygen
(当提示输入口令时,可以为空)
2. 查看秘钥
#less ~/.ssh/id_rsa ←私钥
#less ~/.ssh/id_rsa.pub ← 公钥
3.将公钥复制至远程主机
#ssh-copy-id root@192.168.1.5
4.测试
#ssh root@192.168.1.5[登陆不用密码说明成功]
5. 登陆远程主机后,可查看刚刚复制的秘钥与公钥一致
#less ~/.ssh/authorized_keys
多个公钥可以全部放在authorized_keys文件中,每个公钥一行。即可以完成多个设备之间相互认证。
[root@node1 .ssh]#cat id_rsa.pub* >>authorized_keys
[root@node2 .ssh]#cat id_rsa.pub* >>authorized_keys
[root@node3 .ssh]#cat id_rsa.pub* >>authorized_keys
[root@node1 .ssh]#scp id_rsa.pubroot@node2:~/.ssh/id_rsa.pub.node1
[root@node1 .ssh]#scp id_rsa.pubroot@node3:~/.ssh/id_rsa.pub.node1
加快ssh登录
修改sshd_config中如下行
//*是否取消使用 ~/.ssh/.rhosts 来做为认证
IgnoreRhosts yes
//*GSSAPI 的用户认证登陆的时候客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,则容易卡住并超时
GSSAPIAuthentication no
//*不使用DNS尝试解析IP地址
UseDNS no
------SSH ssh子系统 -------
1. 远程复制命令:scp
功能:将本地/远程文件复制到远程/本地
2. 远程文件传输命令:sftp
功能:将本地/远程文件上传或下载至远程/本地
将sftp账户chroot
1.创建一个组
#groupadd sftp_ak47
2.将账户加入至组
#usermod -G sftp_ak47 yht
3.配置ssh服务文件
#cd /etc/ssh
#vi sshd_config
将147行注释
#Subsystem sftp
/usr/libexec/openssh/sftp-server
并改为以下内容
Subsystem sftp internal-sftp
在最下行添加如下内容
Match Group sftp_ak47
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home
ForceCommand internal-sftp
4.重新启动sshd服务
5.测试
#sftp yht@192.168.1.5