📌  相关文章
📜  ssh 复制 id 到远程服务器 - Shell-Bash (1)

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

SSH复制ID到远程服务器

SSH公钥认证是一种方便且安全的方式来连接远程服务器。为了使用SSH公钥认证,需要在本地电脑上生成SSH密钥对,其中包含公钥和私钥。将公钥复制到远程服务器上,就可以通过私钥进行SSH连接。

以下是在Linux系统上复制SSH公钥到远程服务器的步骤:

1. 生成SSH密钥对

使用以下命令在本地电脑上生成SSH密钥对:

ssh-keygen -t rsa -b 4096

这将生成一个2048位的RSA密钥对,其中包含公钥和私钥。默认情况下,密钥将保存在用户主目录下的.ssh目录中。可以在生成密钥对时设置密码保护私钥。

2. 复制公钥到远程服务器

使用以下命令复制公钥到远程服务器上的.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文件中,即使该文件不存在也会自动创建。

3. 设置SSH配置

为了使用SSH公钥认证,需要在本地电脑上的SSH配置中添加以下内容:

Host remote_host
    Hostname remote_host
    User username
    IdentityFile ~/.ssh/id_rsa

这将指示SSH连接到名为'remote_host'的远程服务器,并使用指定的用户名和密钥对进行认证。可以将该配置保存在~/.ssh/config文件中。

这就是使用SSH复制ID到远程服务器的过程。现在,可以轻松地连接到远程服务器而不必输入密码!