SSH配置免密登录 详解(踩坑无数总结)
程序员文章站
2022-03-02 18:08:31
...
之前在使用Ansible部署工具的时候,需要先配置好SSH免密登录,在配置时踩了很多的坑(按照很多文章的步骤并不能完全配置好免密登录),因此在踩完所有的坑之后,总结出来这篇文章。
生成公钥、私钥对
在中控机上,执行以下命令,然后一路回车即可。
$ ssh-******
Generating public/private rsa key pair.
Enter file in which to save the key (/home/work/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/work/.ssh/id_rsa.
Your public key has been saved in /home/work/.ssh/id_rsa.pub.
The key fingerprint is:
7a:61:ca:d4:d2:0d:60:c3:c3:ad:9c:eb:bd:92:c3:92 [email protected]********
The key's randomart image is:
+--[ RSA 2048]----+
| o+. |
| .+o. |
| . +. |
| +o o |
| o.S . |
| o.= . |
| ++o. |
| E *.. |
| . o.. |
+-----------------+
将公钥拷贝到需要控制的机器上去
# 中控机
$ cat ~/.ssh/id_rsa.pub
# 需要控制的机器(将中控机的id_rsa.pub文件的内容追加到authorized_keys)
$ vim ~/.ssh/authorized_keys
修改权限
修改权限就是最坑的地方,大部分的文章都会说明要修改 ~/.ssh 和 authorized_keys 的权限,但都忽略了修改用户的权限。
修改权限是修改 需要控制的机器 的权限。
# 修改用户的权限,这里我的用户是work
$ chmod 700 /home/work
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
查看ssh端口并远程登录
ssh的默认端口是22,公司内部为了安全,可能会修改ssh配置,设立一个新的端口,所以我们可以查看配置文件确定ssh端口。
$ vim /etc/ssh/sshd_config
Port 22
Port 58518
# 确认端口之后我们就可以登录机器了,-p之后填写端口号
$ ssh -p 22 ip
$ ssh -p 58518 ip
The authenticity of host '[xx.xx.xx.xx]:58518 ([xx.xx.xx.xx]:58518)' can't be established.
ECDSA key fingerprint is xx:xx:xxxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[xx.xx.xx.xx]:58518' (ECDSA) to the list of known hosts.
第一次登录如果遇到上面的询问,输入yes即可。
上一篇: SSH的jar包