创建 ssh 密钥:
$ ssh-keygen -t rsa –P ""
将密钥移至授权密钥:
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
答案1
bash: /home/user/.ssh/authorized_keys: No such file or directory
路径的元素/home/user/.ssh/
不存在; shell ( )在执行命令 ( ) 之前bash
检查重定向 ( ) 。如果确实存在,你试试这个:>>
cat
/home/user
cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this
您现在将得到:
cat: /home/user/.ssh/id_rsa.pub: No such file or directory
由于该文件不能位于该位置,如果/home/user/.ssh/
一开始就不存在的话。
您正在遵循一些说明,但可能跳过了一些位。创建目录:
mkdir $HOME/.ssh
chmod 700 $HOME/.ssh
然而,id_rsa.pub
不会在那里。它将位于您ssh-keygen
最初运行命令的位置。
答案2
确保您首先以要为其创建 ssh 密钥的用户身份登录(或者准备将命令中的路径修改为正确的主目录)。
然后只需创建目录:
mkdir ~/.ssh
cat
使用上面列出的命令创建文件。然后不要忘记正确设置权限:
chmod 400 ~/.ssh/authorized_keys
您可能想确保 .ssh 目录也具有适当的权限。
答案3
如果可能的话,我总是鼓励人们使用命令行工具ssh-copy-id
。
$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine
如果您只想将默认 SSH 公钥复制到远程服务器,只需运行以下命令:
$ ssh-copy-id user@remoteserver
我在此问答中展示了如何使用此工具的实际完整示例,标题为:无法与 rsync 共享 ssh 连接。
答案4
如果在使用 创建密钥时ssh-keygen
为其指定文件名,则此操作也可能会失败。我输入了一些名称my-ssh-file-name
,它写入了密钥/Users/MyUserName
而不是.ssh
文件夹。如果将文件名留空,它将.ssh
按预期写入。