SSH(Secure Shell)是一种能够提供安全远程登录会话的协议,使用ssh可以在远程linux中执行命令。
sshd服务提供两种安全验证的方法:
(1)基于口令的安全验证:经过验证帐号与密码即可登录到远程主机
(2)基于密钥的安全验证:需要在本地生成“密钥对”后将公钥传输至服务器,进行公共密钥的比较
1. sshd服务的重要配置
cat /etc/ssh/sshd_config
#Port 22 #ListenAddress 0.0.0.0 #Protocol 2 //ssh协议的版本号 #HostKey /etc/ssh/ssh_host_key // SSH协议版本号为1时,私钥存放的位置 #HostKey /etc/ssh/ssh_host_rsa_key // SSH协议版本号为2时,RSA私钥存放的位置 #HostKey /etc/ssh/ssh_host_dsa_key // SSH协议版本号为2时,DSA私钥存放的位置 #PermitRootLogin // 设置是否允许root用户直接登录 #StrictModes yes // 当远程私钥改变时直接拒绝链接 #MaxSessions 10 // 最大终端数 #MaxAuthTries 6 // 最大密码尝试次数
注意:每次修改配置文件后都应该执行
systemctl start sshd
systemctl enable sshd
2. 密码验证登录
# ssh 远程服务器IP
# yes
# 输入密码
# ok
3. 密钥验证登录
(1)在本地主机生成“密钥对”,并将共钥传输到远程主机中
#ssh-keygen
#ssh-cop-id ip
(2)在远程主机中修改sshd服务的配置文件并重启服务
$PasswordAuthentication no
$PubkeyAuthentication yes
$systemctl start sshd
$systemctl enable sshd
(3)接下来就可以无密码远程主机了
ssh ip
特别注意:cd ~/.sh目录