在 ubuntu 上设置 ssh-copy-id

在 ubuntu 上设置 ssh-copy-id

我正在尝试在 ubuntu 上设置 ssh-copy-id 我需要第二个意见,这是缺少 .pub 路径还是 ssh 的设置错误

sammy@samuel-pc:~$ cat ~/.ssh/id_rsa.pub
cat: /home/sammy/.ssh/id_rsa.pub: Permission denied
sammy@samuel-pc:~$ ssh-copy-id [email protected]

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/home/sammy/.pub': No such file
    (to install the contents of '/home/sammy/.pub' anyway, look at the -f option)
sammy@samuel-pc:~$ cd .ssh
-bash: cd: .ssh: Permission denied


sammy@samuel-pc:~$ sudo ls -l ~/.ssh/id_rsa.pub
[sudo] password for sammy: 
-rwxr-xr-x 1 sammy sammy 397 Jul 12 20:25 /home/sammy/.ssh/id_rsa.pub

我也尝试过从我的电脑上进行 ssh,但身份验证被破坏了,我尝试修复它,但失败了

samuel@samuel-pc:~$ ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 
sh: 1: cannot create .ssh/authorized_keys: Permission denied

结果来自sudo ls -lsa ~/.ssh

sammy@samuel-pc:~$ sudo ls -lsa ~/.ssh
[sudo] password for sammy: 
Sorry, try again.
[sudo] password for sammy: 
total 28
4 drw-rw-rw- 2 sammy sammy 4096 Jul 13 21:25 .
4 drwxr-xr-x 9 sammy sammy 4096 Jul 19 23:55 ..
4 -rwxr-xr-x 1 sammy sammy  790 Jul 13 21:35 authorized_keys
4 -rwxr-xr-x 1 sammy sammy 1675 Jul 12 20:25 id_rsa
4 -rwxr-xr-x 1 sammy sammy  397 Jul 12 20:25 id_rsa.pub
4 -rwxr-xr-x 1 sammy sammy 1024 Jul 13 12:48 .id_rsa.pub.swp
4 -rwxr-xr-x 1 sammy sammy  222 Jul 12 20:21 known_hosts

结果是ls -ld ~/.ssh

sammy@samuel-pc:~$ ls -ld ~/.ssh
drw-rw-rw- 2 sammy sammy 4096 Jul 13 21:25 /home/sammy/.ssh

如何才能在服务器上获得 ssh 的正确访问权限?

答案1

以下命令应该可以修复你的~/.ssh文件夹的权限问题

chmod 700 ~/.ssh
  • 这将允许对文件夹进行读/写/执行 - 仅限所有者(您自己)
  • 执行方式——改变目录

以下命令将设置文件~/.ssh夹内文件的正确权限

chmod 400 ~/.ssh/*
  • 文件夹中的文件~/.ssh应该有所有者只读允许
  • chmod 400设置所有者只读允许

修复~/.ssh文件夹/文件权限后,您可以尝试再次执行该ssh-copy-id命令

答案2

为了使用,ssh-copy-id您需要生成 ssh (id_rsa) 密钥文件。就我而言,我意外地生成了密钥,sudo结果在而不是下生成了id_rsa和文件。因此,在尝试完成之后,我得到了:id_rsa.pub/root/.ssh//home/user/.ssh/ssh-copy-id someuser@somehost

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/home/user/.pub': No such file
(to install the contents of '/home/user/.pub' anyway, look at the -f option)

诱惑在于使用-f选项,但真正的解决方案很简单:只需生成无需 sudo 的 ssh 私钥:

ssh-keygen -t rsa

通常以下~/.ssh/文件内容应该有效:

user@ubuntu:~$ ll .ssh/
total 28
drwx------  2 user group 4096 Dec 30 16:17 ./
drwxr-xr-x 15 user group 4096 Dec 30 16:17 ../
-rw-------  1 user group 1773 Dec 30 17:23 authorized_keys
-rw-------  1 user group 1679 Jan  1  2016 id_rsa
-rw-r--r--  1 user group  399 Jan  1  2016 id_rsa.pub
-rw-r--r--  1 user group 2436 Dec 30 16:17 known_hosts
user@ubuntu:~$

答案3

所以您的问题是由文件权限中的一些错误引起的。

第一的:您的目录没有可执行标志,这意味着您的系统无法实际切换到该目录并访问其中的文件。这应该可以解决这个问题。

chmod +x ~/.ssh

之后,您需要调整公钥和私钥文件的权限,这些权限只能由您的用户读取,而其他任何用户都无法读取。您可以使用以下方法完成此操作:

chmod 400 ~/.ssh/*

这应该可以解决您的问题。有时 ssh 非常挑剔,如果您的/home/user权限仍可由组/其他人写入,则仍会导致错误。因此,为了安全起见,请从主目录中删除组和其他人的写入权限。

chmod go-w ~/

这应该可以解决你的问题。

相关内容