📅  最后修改于: 2023-12-03 15:35:08.722000             🧑  作者: Mango
SSH公钥认证是一种方便且安全的方式来连接远程服务器。为了使用SSH公钥认证,需要在本地电脑上生成SSH密钥对,其中包含公钥和私钥。将公钥复制到远程服务器上,就可以通过私钥进行SSH连接。
以下是在Linux系统上复制SSH公钥到远程服务器的步骤:
使用以下命令在本地电脑上生成SSH密钥对:
ssh-keygen -t rsa -b 4096
这将生成一个2048位的RSA密钥对,其中包含公钥和私钥。默认情况下,密钥将保存在用户主目录下的.ssh目录中。可以在生成密钥对时设置密码保护私钥。
使用以下命令复制公钥到远程服务器上的.ssh/authorized_keys文件中:
ssh-copy-id username@remote_host
在这里,'username'是远程服务器上的用户名,'remote_host'是远程服务器的IP地址或主机名。首次连接远程服务器时,需要输入远程服务器的密码。
复制成功后,可以尝试使用以下命令进行SSH连接:
ssh username@remote_host
此时,应该不需要再输入密码就可以连接到远程服务器了。
如果上述方法无法执行,也可以手动将公钥复制到远程服务器的.ssh/authorized_keys文件中:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
这将将本地电脑上的公钥复制到远程服务器的.ssh/authorized_keys文件中,即使该文件不存在也会自动创建。
为了使用SSH公钥认证,需要在本地电脑上的SSH配置中添加以下内容:
Host remote_host
Hostname remote_host
User username
IdentityFile ~/.ssh/id_rsa
这将指示SSH连接到名为'remote_host'的远程服务器,并使用指定的用户名和密钥对进行认证。可以将该配置保存在~/.ssh/config文件中。
这就是使用SSH复制ID到远程服务器的过程。现在,可以轻松地连接到远程服务器而不必输入密码!