因此我希望在两个服务器之间设置 ssh 私钥/公钥,以便与 sftp 一起使用(最终使用 sftp 与 lftp 一起使用 - 但一步一步来)。
我已经创建了私钥和公钥,并且发现为了使用它们,私钥必须由连接的用户拥有并且只能由连接的用户读取。
问题是,我连接的用户在任何一台服务器上都没有 /home/ 目录(并且只存在于远程服务器上),所以当我尝试时chown
,我得到chown: invalid user: {userName}
- 因为它在本地不存在。
有人能建议解决这个问题的方法吗?
- 编辑 -
我getent passwd
在两台服务器上都使用了该功能,发现该用户只存在于我正在sftp
使用的服务器上到。那么当我以该用户身份连接时(sftp weirdUser@remoteHost
),如何使用私钥/公钥执行此操作?
答案1
您需要~/.ssh/config
本地服务器上的某个文件将您的密钥与远程服务器上的用户关联起来,例如:
Host yourremoteserver
User weirduser
IdentityFile /home/mylocaluser/.ssh/id_rsa
如果您想要为 weirduser@yourremoteserver 创建一个唯一的密钥,请使用-f
ssh-keygen 上的选项:
ssh-keygen -t rsa -b 1024 -f weirduser
并将文件中的 IdentityFile 行替换~/.ssh/config
为:
IdentityFile /home/mylocaluser/.ssh/weirduser
无论您决定使用哪个密钥(默认的 id_rsa 或 weirduser),您都需要将相应的 .pub 文件的内容插入authorized_keys
远程服务器上的 weirduser 中。设置配置文件后,请尝试(它会提示输入远程密码,然后将 .pub 文件复制到正确的位置authorized_keys
):
ssh-copy-id weirduser@yourremoteserver
(或者你可以手动执行此操作)
答案2
您需要创建用户 SSH 私钥/公钥,这只是密码验证的另一种验证方法。
因此您需要创建允许使用公私钥对的用户 http://www.tecmint.com/add-users-in-linux/
创建用户然后您就可以 CHOWN 到该用户。