.ssh目录未被创建

blu*_*sky 43 unix ssh cygwin

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

ssh-keygen
Run Code Online (Sandbox Code Playgroud)

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

但是.ssh目录没有创建,因此当我使用时,cd ~/.ssh我收到此错误:

"no such file or directory"
Run Code Online (Sandbox Code Playgroud)

有缺失的一步吗?我应该在.ssh使用ssh-keygen命令时创建目录吗?

mvp*_*mvp 63

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

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

ssh user@some.host
Run Code Online (Sandbox Code Playgroud)

并接受新的密钥-它会创建目录~/.sshknown_hosts下方,或者干脆手动创建它使用

mkdir ~/.ssh
chmod 700 ~/.ssh
Run Code Online (Sandbox Code Playgroud)

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

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


slm*_*slm 6

作为对其他答案的轻微改进,您可以使用的开关将mkdirchmod作为单个操作执行。mkdir-m

$ mkdir -m 700 ${HOME}/.ssh
Run Code Online (Sandbox Code Playgroud)

用法

从 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
...
...
Run Code Online (Sandbox Code Playgroud)


Joh*_*web 5

有缺失的一步吗?

是.您需要创建目录:

mkdir ${HOME}/.ssh
Run Code Online (Sandbox Code Playgroud)

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

% chmod 700 ~/.ssh
Run Code Online (Sandbox Code Playgroud)

我在.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.
Run Code Online (Sandbox Code Playgroud)

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

% chmod -R go-wrx ~/.ssh/*
Run Code Online (Sandbox Code Playgroud)