ssh密钥登录配置

配置密钥可使用户免密ssh方式登录服务器。

配置方法:

生成密钥对

1
$ ssh-keygen

此处可选择生成密钥的文件路径,默认为~/.ssh/id_rsa
密码为可选。

拷贝公钥到服务器

方式一:

1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@host

方式二:

手动拷贝id_rsa.pub到服务器上,并收到添加认证文件。

1
$ cat id_rsa.pub >> ~/.ssh/authorized_keys

服务器配置

配置服务器上/etc/ssh/sshd_config文件,修改以下配置项

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后,重启sshd服务,根据不同的系统使用相应命令

登录

直接登录

1
$ ssh user@host

如果配置成功,则不需要密码直接登录。

问题

配置成功后,仍提示密码输入

主要原因在于服务器上认证文件及所在目录的权限问题

详情排查步骤可查看文章配置ssh公钥登录提示还是输入密码

解决方法:

1
$ chmod 755 ~/home/xxxuser

MAC下通过ssh使用PEM文件认证登录AWS的虚拟机

MAC下通过ssh使用PEM文件认证登录AWS的虚拟机。

直接连接

输入以下命令即可访问:

1
ssh -i key.pem xxx@server

常见错误:
截图

问题在于服务器提示文件的权限过大,需要调整,再次连接即可。

1
2
sudo chmod 600 key.pem
ssh -i key.pem xxx@server

保存key

另外一种方式,可通过ssh-add添加配置文件,方便后续访问。
添加完成后,直接访问即可。

1
2
ssh-add -k key.pem
ssh xxx@server