我有 Ubuntu 18.04,我们有一个管理员帐户和一个其他用户的帐户。我已添加需要管理员帐户管理员访问权限的用户的公共 SSH 密钥,但是当我尝试对单个用户执行相同操作时,我在该用户的目录中看不到该authorized_keys
文件。.ssh
我应该如何进行这里?
以下是我尝试过的命令:
cd /home
cd /admin
ls -a
nano .ssh/authorized_keys
然后我将公钥添加到管理员帐户。这适用于管理员,但对于其他用户我看不到任何authorized_keys
文件。
答案1
生成 ssh 密钥:
ssh-keygen -t rsa -b 4096 -C "comment"
将其复制到您的远程服务器:
ssh-copy-id user@ip
或者您可以手动将其附加~/.ssh/id_rsa.pub
到~/.ssh/authorized_keys
:
ssh user@ip 'mkdir ~/.ssh'
ssh user@ip 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
答案2
该文件是在您运行时创建的ssh-copy-id <user>@<server>
,例如:
sylvester@host3:~> ssh-copy-id arnold@host4
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/sylvester/.ssh/id_rsa.pub"
/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
Password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'arnold@host4'"
and check to make sure that only the key(s) you wanted were added.
该文件尚不存在,因为没有人为该用户添加任何内容。
答案3
您不需要任何特定的工具来创建授权密钥文件,或告诉任何特定的程序它存在。sshd
每次用户尝试登录时都会查找它。
非常简单,如果它不存在,您可以像为不同用户编辑现有文件一样创建它。
你什么做需要做的是确保权限被充分锁定,否则sshd
将拒绝信任该文件。因此,为用户创建一个完全空的主目录的步骤joebloggs
如下所示:
# Create the .ssh directory, and set its permissions
mkdir ~joebloggs/.ssh
chown joebloggs ~joebloggs/.ssh
chmod 0700 ~joebloggs/.ssh
# Create the authorized keys file, and set its permissions
touch ~joebloggs/.ssh/authorized_keys
chown joebloggs ~joebloggs/.ssh/authorized_keys
chmod 0600 ~joebloggs/.ssh/authorized_keys
这将创建一个完全空的.ssh/authorized_keys
文件,该文件只能joebloggs
访问、读取和写入。
这是最低限度需要许可,遵循最小权限原则。如果需要,您可以允许特定组 ( chgrp -R some-group ~joebloggs/.ssh; chmod 750 ~joebloggs/.ssh; chmod 640 ~joebloggs/.ssh/authorized_keys
) 或系统上的所有用户 ( )进行只读访问chmod 755 ~joebloggs/.ssh; chmod 644 ~joebloggs/.ssh/authorized_keys
。重要的是他们不能写否则 SSH 守护进程将不信任其内容。
答案4
ssh-keygen
(按 Enter 键/不输入任何密码)ssh-keyscan hpc.university.edu > known_hosts
(按输入键)ssh-copy-id [email protected]
(按Enter)在这种情况下你可能需要一些密码才能通过大学VPN,你可以输入它们)