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