SSH免密登录
现在有2台机器,10.206.0.8 和 10.206.0.9.
现在希望能在0.8上,直接通过ssh免密的方式,登录到0.9服务器上。
需要用到2个命令:
ssh-keygen 产生公钥与私钥对.
ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中
1.在0.8上,运行以下命令查看密钥是否存在:
ls ~/.ssh/id_rsa.pub
如果看到 No such file or directory 或 no matches found 意味着没有 SSH 密钥,则可以继续执行下一步并生成新密钥
2.(可选)在0.8上,运行以下命令生成 SSH 公钥和私钥:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
按 Enter 接受则默认文件位置和文件名:
Enter file in which to save the key(/home/yourusername/.ssh/id_rsa):
接下来,ssh-keygen 工具将要求输入安全密码(如果不想使用密码短语,请按 Enter:),您如果选择使用密码短语,将获得额外的安全保护。多数情况下,开发人员和系统管理员使用 SSH 而不使用密码,因为它们对完全自动化的流程很有用。
3.将上一步生产的公钥(id_rsa.pub),复制到目标机器的 authorized_keys 文件中:
ssh-copy-id -i ~/.ssh/id_rsa.pub remote_username@server_ip_address
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.206.0.9
系统将提示输入 remote_username 的密码:
用户通过身份验证后,公钥将附加到远程用户 authorized_keys 文件,并且将关闭连接。
4.验证
ssh remote_username@server_ip_address
ssh root@10.206.0.9
Linux中禁止root用户通过sshd直接登录
adduser jshxhb
passwd jshxhb
vi /etc/ssh/sshd_config
#PermitRootLogin yes:
将前面的#去掉,短尾Yes改为no,保存退出。
重启sshd服务
systemctl restart sshd
测试
使用root登录,被拒绝
ssh 用户名@主机ip 端口号
ssh root@192.168.10.99 10022