Loading

配置ssh密钥远程登录服务器

背景

使用账户密码登录远程服务器是不太安全的,更好的方法是用ssh连接服务器。首先需要在常用设备上生成ssh的私钥与公钥,将公钥存放在要连接的服务器中,每次登录服务器会认证保存的公钥与私钥是否匹配,匹配则可以直接登录,这样省去了密码登录的步骤,更快捷且安全。

生成ssh密钥

如果没有生成过ssh密钥,需要在终端(windows一般是在cmd命令框中)运行命令

ssh-keygen

会在~/.ssh/文件夹下生成了两个文件

id_rsa.pub 公钥
id_rsa 私钥

1. 快捷的生成authorized_keys文件方法

进入到~/.ssh目录下,将公钥追加到服务器的认证文件中(服务器的.ssh目录下会生成一个authorized_keys文件)。执行以下命令:

ssh-copy-id <your_username>@<your_ip>

会提示你输入一次密码,如果正确,会显示:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '<your_username>@<your_ip>'"
and check to make sure that only the key(s) you wanted were added.

如果需要给多台服务器认证密钥,就多次执行该命令,只需根据实际情况替换<your_username>和<your_ip>即可。

接下来输入命令

ssh <your_username>@<your_ip>

成功登录,说明配置成功。可以看到.ssh/目录下已经有authorized_keys文件。

2. 普通的生成authorized_keys方法

公钥复制到要登陆的远程服务器上。可以使用scp传输文件。在命令行中输入:

scp ~/.ssh/id_rsa.pub <user_name>@<your_ip>:

将<user_name>替换为你要登录的用户名,<your_ip>替换为要登录的服务器的ip地址。

登录服务器,在.ssh目录下生成authorized_keys

touch ~/.ssh/authorized_keys

该文件包含一系列允许登录该服务器的公钥。

将公钥内容追加到~/.ssh/authorized_keys中:

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

修改权限

修改ssh目录与相关文件的权限,只允许该用户查看

chmod 700 ~/.ssh # 只允许用户读写执行.ssh目录
chmod 600 ~/.ssh/authorized_keys # 只允许用户读写authorized_keys

参考

https://www.cnblogs.com/feiffy/p/8995003.html

https://www.cnblogs.com/yfacesclub/p/10997022.html

posted @ 2020-12-18 17:35  JavicxhloWong  阅读(590)  评论(0编辑  收藏  举报