一、使用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文件中,并且只有对应的私钥才能用于身份验证。这样可以确保每个用户只能使用自己的密钥进行身份验证,从而提供更好的安全性。