📅  最后修改于: 2023-12-03 15:40:43.453000             🧑  作者: Mango
在传统的 ssh 登录方式下,每次登录都需要输入用户名和密码,但是对于频繁登录的程序员来说,这显得很繁琐。所以,我们可以通过添加公钥的方式,实现无密码登录。
首先,在本地计算机上生成 ssh 公钥。使用以下命令生成 ssh 公钥:
ssh-keygen -t rsa
这个命令将在用户主目录的 .ssh
目录下生成 id_rsa
和 id_rsa.pub
两个文件。其中,id_rsa
是私钥,必须妥善保管,而 id_rsa.pub
是公钥,需要复制到远程服务器上。
将生成的公钥 id_rsa.pub
复制到要登录的远程服务器上。具体步骤如下:
your_server_ip_address
,用户名为 your_username
):ssh-copy-id your_username@your_server_ip_address
如果无法使用 ssh-copy-id
命令,可以手动将公钥复制到远程服务器上,具体步骤如下:
a. 在本地使用以下命令查看公钥:
cat ~/.ssh/id_rsa.pub
b. 将公钥复制到远程服务器的 ~/.ssh/authorized_keys
文件中(如果文件不存在,则需要自行创建)。
# 将本地公钥添加到远程服务器 authorized_keys 文件中
ssh your_username@your_server_ip_address "mkdir -p ~/.ssh && echo `cat ~/.ssh/id_rsa.pub` >> ~/.ssh/authorized_keys"
c. 最后,通过以下命令重启 ssh 服务:
# Ubuntu 系统
sudo systemctl restart sshd
# CentOS 系统
sudo systemctl restart sshd.service
完成上述步骤后,下次登录远程服务器时,将不再需要输入密码。只需要使用以下命令即可登录:
ssh your_username@your_server_ip_address
注意,如果生成 rsa 的时候设置了密码,则每次登录都需要输入一次密码。