我有一个内部 CentOS 7 服务器,它作为我们网站的暂存环境。
我在过去一年左右的时间里通过 Linux Mint 机器上的 SSH 访问了该服务器。现在,其他人也正在尝试访问该服务器,因此在他们的机器上我
- 安装 Git bash
- 使用
ssh-keygen
(并发送垃圾邮件enter
) - 用过的
ssh-copy-id [email protected]
返回:
[电子邮件保护]:权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。
这样,我让他们将他们的 id_rsa.pub 文件发送给我,cat
对其进行编辑,然后将其添加并重/home/user/.ssh/authorized_keys
试,但ssh
/sftp
命令返回相同的权限被拒绝错误。
我不确定我错过了什么,就像我说的,它适用于我的(Linux)机器,但不适用于他们的(Windows)机器。
我已将其设置PasswordAuthentication
为否/etc/ssh/sshd_config
,然后重新启动sshd
服务,但仍然没有影响。
如何使 Windows SSH 密钥在我的 Linux CentOS 服务器上发挥作用?
答案1
您能通过提供和来实际 ssh
username
吗password
?如果不能,那么如果您可以访问该文件,请确保您AllowUsers
在和中有一个条目/etc/ssh/sshd_config
,并且您允许 SSH 访问该文件顶部的子网。如果您确实修改了,sshd_config
请记住重新启动SSH service
。
- 请检查
sshd_config
您是否有以下情况:
AllowUsers
DenyGroups
DenyUsers
设置并确定您是否被允许访问远程。
known_hosts
有时,在目录中重置此文件也会有所帮助$HOME/.ssh
:
cat /dev/null > $HOME/.ssh/known_hosts
- 检查是否
denyhosts
已安装以及是否IP
在文件中阻止了您的地址hosts
。
如果您通过多次尝试使用错误的凭据通过 SSH 登录来将自己的 IP 地址列入黑名单,那么您可以使用控制台连接到您的服务(使用控制台/ VNC 连接到您的 VPS)并使用以下命令删除阻止:
- 停止
denyhosts
服务(systemctl stop denyhosts
或/etc/init.d/denyhosts stop
) - 从 /etc/hosts.deny 中删除包含 IP 的行
- 从文件中删除带有 IP 的行
/var/lib/denyhosts/hosts*
(注意:并非所有文件都包含 IP) - 删除包含 IP 的行
/var/lib/denyhosts/user-hosts
IPTABLES
删除表格中的行- 启动
denyhosts
服务
- 检查你是否正确
port
如果这不是问题,请按照以下步骤创建密钥并将其复制到远程:
在本地系统上创建密钥:
ssh-keygen -o -b 4096 -t rsa -C [email protected]
或者:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/vps-cloud.web-server.key -C "My web-server key"
系统将提示您输入私钥的密码。我建议您在出现提示时设置密码。
- -t rsa :指定要创建的密钥类型。可能的值为“rsa1”(表示协议版本 1)和“dsa”、“ecdsa”、“ed25519”或“rsa”(表示协议版本 2)。
- -b 4096 :指定要创建的密钥中的位数
- -f ~/.ssh/vps-cloud.web-server.key :指定密钥文件的文件名。
- -C ”[电子邮件保护]“:设置新评论。
如果您希望从 root 帐户访问服务器,请执行su
并重复上述命令。
$HOME/.ssh/id_rsa
– 包含您的私钥。$HOME/.ssh/id_rsa.pub
– 包含您的公钥。
将密钥复制到远程:
ssh-copy-id [email protected]
或者:
sh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]
或者:
首先.ssh
在远程服务器上创建目录
ssh [email protected] "umask 077; test -d .ssh || mkdir .ssh"
cat
本地 IDrsa.pub
文件并通过 ssh 管道将公钥附加到远程服务器中
cat $HOME/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"
或者:
cat ~/.ssh/id_rsa.pub | ssh -p 22000 [email protected] "cat >> ~/.ssh/authorized_keys"
如果您希望每个会话仅输入key
一次密码,请将其添加到您的.bashrc
文件中:
eval `ssh-agent`
ssh-add
那么您在终端/shell 启动时将被要求输入密码,并且不会再次输入。