.ssh目录未被创建

时间:2013-03-03 20:21:16

标签: unix ssh cygwin

要生成.ssh目录,我使用此命令:

ssh-keygen

取自本教程:http://ebiquity.umbc.edu/Tutorials/Hadoop/05%20-%20Setup%20SSHD.html

但是.ssh目录未创建,因此当我使用cd ~/.ssh时出现此错误:

"no such file or directory"

是否缺少一步?我应该在使用.ssh命令时创建ssh-keygen目录吗?

3 个答案:

答案 0 :(得分:59)

我假设您有足够的权限来创建此目录。

要解决您的问题,您可以ssh到其他位置:

ssh user@some.host

并接受新密钥 - 它会在下面创建目录~/.sshknown_hosts,或者只是使用

手动创建它
mkdir ~/.ssh
chmod 700 ~/.ssh

请注意chmod 700是重要的一步!

在那之后,ssh-keygen应该没有抱怨。

答案 1 :(得分:5)

  

是否缺少一步?

是。您需要创建目录:

mkdir ${HOME}/.ssh

此外,SSH要求您设置权限,以便只有您(所有者)可以访问〜/ .ssh中的任何内容:

% chmod 700 ~/.ssh
  

使用.ssh命令时是否应生成ssh-keygen目录?

没有。此命令生成SSH密钥对,但如果无法写入所需目录,则会失败:

% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): /Users/tmp/does_not_exist
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
open /Users/tmp/does_not_exist failed: No such file or directory.
Saving the key failed: /Users/tmp/does_not_exist.

创建密钥后,您还应该限制谁可以自己阅读这些密钥文件:

% chmod -R go-wrx ~/.ssh/*

答案 2 :(得分:1)

与其他答案相比略有改进,您可以使用mkdir chmod开关作为单个操作执行mkdir-m。< / p>

$ mkdir -m 700 ${HOME}/.ssh

用法

来自Linux系统

$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
...
...