📅  最后修改于: 2023-12-03 15:05:21.513000             🧑  作者: Mango
ssh 命令是一个常用的远程登录工具,它可以在本地计算机和远程服务器之间建立安全的、加密的通信通道。在开发过程中,我们需要经常使用 ssh 连接到远程服务器。而每次都手动输入用户名和密码会很麻烦,这时我们可以使用 ssh 代理来记住密码,从而避免每次通过 ssh 连接时都需要输入密码。
使用 ssh 代理的方法如下:
首先需要在本地计算机上生成 ssh key。生成方法可以参考[这个教程][1]。
将生成的公钥(默认存放在 ~/.ssh/id_rsa.pub)复制到远程服务器的 ~/.ssh/authorized_keys 文件中。
在本地计算机上运行 ssh-agent,可以使用以下命令:
eval $(ssh-agent)
将私钥添加到 ssh-agent 中,可以使用以下命令:
ssh-add
如果提示 "Could not open a connection to your authentication agent.",需要运行以下命令:
ssh-agent bash
现在就可以通过 ssh 连接到远程服务器了,不需要手动输入密码了。可以使用以下命令:
ssh user@hostname
其中,user 为远程服务器的用户名,hostname 为远程服务器的 IP 或域名。
如果想要在终端中保持 ssh 代理,可以添加以下命令到 ~/.bashrc 文件中:
eval $(ssh-agent)
ssh-add
上面的方法可以让 ssh 代理在登录时保存密码,但是在每次重新打开终端时需要手动运行 ssh-agent 和 ssh-add 命令,比较麻烦。可以在终端中添加以下命令,自动运行 ssh-agent 和 ssh-add:
if [[ -z $SSH_AUTH_SOCK ]]; then
eval "$(ssh-agent -s)"
ssh-add
fi
这样就可以在每次打开终端时自动运行 ssh-agent 和 ssh-add 命令了。
[1]: https://ssh.com/ssh/keygen/