欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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即可。

相关标签: linux ssh