我有这个脚本我试图在我的机器Ubuntu 14.04上执行,这表明我应该管理服务器上的 ssh 密钥,以避免每次都输入密码,我不知道该怎么做,并且执行过程不断要求我输入密码(然后我输入计算机密码),但它给出的权限被拒绝,
正如脚本中提到的,我的机器将同时作为服务器和客户端
你能帮我做什么吗?我应该如何配置 ssh 连接?
谢谢
答案1
在您的情况下,“服务器”和“客户端”是同一台计算机。
客户端设置
生成 SSH 密钥对。
mkdir ~/.ssh
cd ~/.ssh && ssh-keygen -b 2048 -t rsa -C "My Comment for key" -t "access_key"
您可以在手册页中阅读有关 ssh-keygen 选项的详细信息:
man ssh-keygen
之后你可以在 ~/.ssh/ 中找到两个文件 access_key 和 access_key.pub
在 ~/.ssh 目录中创建名为“config”的文件。此文件允许您为需要连接的每台主机设置不同的设置。
以下是该文件的简单内容
Host my.remote-host.com
User remoteusername
Identityfile ~/.ssh/access_key
my.remote-host.com- 要连接的目标主机(localhost)
远程用户名- 远程机器上的用户登录名
身份文件- 通往你的道路私人的钥匙
服务器端设置
如何启用“PublickKey”认证:
sudo nano /etc/ssh/sshd_config
取消注释下一行:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
RSA认证- 启用 RSA 密钥支持
公钥认证- 启用公钥身份验证
授权密钥文件- 包含公钥的文件路径
重新启动 ssh 服务器
sudo service sshd restart
创建目录并设置正确的权限
mkdir ~/.ssh
sudo chmod 700 ~/.ssh
为公钥创建文件并设置正确的权限
touch ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
将您的公钥(access_key.pub)放入〜/ .ssh / authorized_keys
每个键只应使用一行。例如:
ssh-dss AAAAB3NzaC1kc3MAAAbC2kVOJpcnfu7UqKV44uZ/khiP9K7F...aoSe MyComment
如何彻底禁用密码验证
sudo nano /etc/ssh/sshd_config
改变密码验证从“是”到“否”重新启动 sshd 服务器
sudo service sshd restart