我即将使用公钥连接到 ssh
ssh user1@host1
Permission denied (publickey).
我已经在本地机器上获得了 ssh 公钥。我知道我应该先将公钥复制到远程机器中,问题是密码验证被禁止。我可以连接 user2@host1,并且我的 ssh 密钥已经复制到这个 user2 ~/.ssh/authorized_keys 文件中。我可以手动完成,但问题是,如果远程 user2@host1 的主文件夹不存在,我应该在哪里手动复制本地公钥?
以前允许密码授权时,ssh-copy-id 可以正常工作。我现在该如何执行?
本地机器:
$ cat /etc/*-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
远程机器:
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
请指教。
答案1
由于您可以使用 user2 登录,因此最简单的解决方案是创建 user1 的主目录和 ssh 目录(/home/user1
、/home/user1/.ssh
),这可能需要超级用户权限,然后将 user2 的authorized_keys
文件复制到 user1(如果所有密钥都相同),或者(更安全但稍微复杂一些)使用 复制 user1 的公钥到远程计算机scp
。从本地计算机:
scp ~/.ssh/pubkey_file user2@host1:/some/folder/
然后将密钥放入/home/user1/.ssh/authorized_keys
。登录到远程计算机后,
cat /some/folder/pubkey_file > /home/user1/.ssh/authorized_keys
当然,您需要确保所有文件夹和文件权限都设置正确。最简单的方法是将它们与 user2 的 ssh 文件和文件夹上的权限进行比较。