可以通过SSH密钥对来避免每次使用 SSH 连接时输入密码。这种方法基于公钥加密技术,您需要在本地计算机上生成一对密钥(私钥和公钥),然后将公钥复制到远程主机上的授权文件中。这样,在您尝试登录到远程主机时,它将与您的私钥进行匹配并自动进行身份验证,而不是要求您输入密码。
以下是在Mac上配置SSH密钥对的步骤:
1、打开终端应用程序
2、在命令行中输入“ssh-keygen
”命令以生成RSA密钥对。按Enter键确认默认设置即可。
3、将生成的公钥复制到远程主机的授权文件中。您可以使用以下命令将公钥上传到远程主机:
ssh-copy-id username@remote_host
远程授权主机的文件夹位置
远程主机的授权文件夹可能会因操作系统而有所不同。对于大多数Linux系统,授权文件夹位于用户家目录下的.ssh文件夹中,其完整路径为~/home/your_username/.ssh/authorized_keys
。如果您使用的是其他操作系统,请查看相应的文档以了解授权文件的位置。
在远程主机上将公钥添加到授权文件的方法有几种,其中一种是通过ssh-copy-id命令。该命令会自动将公钥添加到指定用户的授权文件中,从而避免手动复制粘贴等操作。假设您已经生成了RSA密钥对,并且想将公钥传输到名为"remote_host"的远程主机上的"user123"用户的授权文件中,请运行以下命令:
ssh-copy-id user123@remote_host
使用命令复制公钥到远程主机文件夹
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
请将“username”替换为远程主机上的实际用户名,“remote_host”替换为实际的IP地址或域名。
这个命令会将本地计算机上默认位置的公钥(~/.ssh/id_rsa.pub
)复制到远程主机的授权文件中(~/.ssh/authorized_keys
)。如果远程主机上的授权文件不存在,则此命令将创建该文件并将公钥写入其中。
4、现在,您应该能够连接到远程主机而无需输入密码,只需运行以下命令即可:
ssh username@remote_host