我正在尝试在 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 ~/
这应该可以解决你的问题。