.ssh 目录未创建

问题描述 投票:0回答:4

要生成

.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
目录?

unix ssh cygwin
4个回答
99
投票

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

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

ssh [email protected]

并接受新密钥 - 它将在下面创建目录

~/.ssh
known_hosts
,或者只需使用

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

注意

chmod 700
是重要的一步!

之后,ssh-keygen 应该可以正常工作。


14
投票

是不是少了一步?

是的。您需要创建目录:

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/*

14
投票

作为对其他答案的轻微改进,您可以使用

mkdir
chmod
开关将
mkdir
-m
作为单个操作进行。

$ 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
...
...

0
投票

另一种方法是输入命令

ssh-keygen
并让它使用默认键创建目录。

© www.soinside.com 2019 - 2024. All rights reserved.