CentOS 上的 Windows SSH 密钥

CentOS 上的 Windows SSH 密钥

我有一个内部 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

您能通过提供和来实际 sshusernamepassword?如果不能,那么如果您可以访问该文件,请确保您AllowUsers 在和中有一个条目/etc/ssh/sshd_config,并且您允许 SSH 访问该文件顶部的子网。如果您确实修改了, sshd_config请记住重新启动SSH service


  1. 请检查sshd_config您是否有以下情况:

AllowUsers

DenyGroups

DenyUsers

设置并确定您是否被允许访问远程。


  1. known_hosts有时,在目录中重置此文件也会有所帮助$HOME/.ssh

cat /dev/null > $HOME/.ssh/known_hosts

  1. 检查是否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服务

  1. 检查你是否正确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并重复上述命令。

  1. $HOME/.ssh/id_rsa– 包含您的私钥。
  2. $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 启动时将被要求输入密码,并且不会再次输入。

相关内容