发新帖

[Linux] scp拷贝文件到另一台服务器时密码的处理方法之使用SSH密钥对

零下一度 10月前 302

一、使用SSH密钥对

创建SSH密钥对,并将公钥添加到远程服务器上,可以实现无密码登录。

创建SSH密钥对

在本机上生成SSH密钥对(如果还没有的话):

ssh-keygen -t rsa

这将会在你的home目录下的.ssh文件夹中生成id_rsa(私钥)和id_rsa.pub(公钥)文件。

将公钥部署到远程服务器

将你的公钥复制到远程服务器的~/.ssh/authorized_keys文件中:

scp ~/.ssh/id_rsa.pub user@ip:~/.ssh/server1/

然后,登录远程服务器,在远程服务器上:

cat id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    

确保.ssh目录和authorized_keys文件的权限设置正确:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

二、在同一台服务器上部署多个公钥,可以通过以下步骤实现:

1、生成多个SSH密钥对。在本地计算机上打开终端或命令提示符,并执行以下命令来生成一对新的SSH密钥(如果还没有的话):

ssh-keygen -t rsa

    

这将生成一个私钥和一个公钥。默认情况下,它们将保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件中。你可以根据需要更改文件名或路径。

2、将每个公钥添加到远程服务器的authorized_keys文件中。使用scp命令将每个公钥文件复制到远程服务器上,然后将其追加到~/.ssh/authorized_keys文件中。例如,如果你有两个公钥文件id_rsa_user1.pub和id_rsa_user2.pub,可以执行以下命令:

scp id_rsa_user1.pub user1@remote_server:
scp id_rsa_user2.pub user2@remote_server:

    

然后,登录到远程服务器,并将每个公钥追加到authorized_keys文件中:

cat id_rsa_user1.pub >> ~/.ssh/authorized_keys
cat id_rsa_user2.pub >> ~/.ssh/authorized_keys

3、确保authorized_keys文件的权限正确。为了安全起见,应该限制对该文件的访问权限。可以使用以下命令设置正确的权限:

chmod 600 ~/.ssh/authorized_keys

4、测试连接。现在,你应该能够使用每个用户的私钥通过SSH连接到远程服务器。尝试使用不同的私钥进行连接,以确保每个用户都可以成功登录。

请注意,这种方法允许多个用户使用不同的密钥对登录到同一台服务器。每个用户的公钥都存储在authorized_keys文件中,并且只有对应的私钥才能用于身份验证。这样可以确保每个用户只能使用自己的密钥进行身份验证,从而提供更好的安全性。


最新回复 (0)
返回
零下一度
主题数
931
帖子数
0
注册排名
1