📜  ssh 代理记住密码 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:21.513000             🧑  作者: Mango

ssh 代理记住密码

ssh 命令是一个常用的远程登录工具,它可以在本地计算机和远程服务器之间建立安全的、加密的通信通道。在开发过程中,我们需要经常使用 ssh 连接到远程服务器。而每次都手动输入用户名和密码会很麻烦,这时我们可以使用 ssh 代理来记住密码,从而避免每次通过 ssh 连接时都需要输入密码。

使用 ssh 代理的方法如下:

  1. 首先需要在本地计算机上生成 ssh key。生成方法可以参考[这个教程][1]。

  2. 将生成的公钥(默认存放在 ~/.ssh/id_rsa.pub)复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

  3. 在本地计算机上运行 ssh-agent,可以使用以下命令:

    eval $(ssh-agent)
    
  4. 将私钥添加到 ssh-agent 中,可以使用以下命令:

    ssh-add
    

    如果提示 "Could not open a connection to your authentication agent.",需要运行以下命令:

    ssh-agent bash
    
  5. 现在就可以通过 ssh 连接到远程服务器了,不需要手动输入密码了。可以使用以下命令:

    ssh user@hostname
    

    其中,user 为远程服务器的用户名,hostname 为远程服务器的 IP 或域名。

  6. 如果想要在终端中保持 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/