Pho*_*nix 9 networking linux ssh unix putty
正如标题中所述,我在通过 ssh 连接到远程服务器时遇到问题。我正在尝试将 Windows 计算机连接到运行 CentOS 的服务器。我一直在 Windows 机器上使用 PuTTY 来尝试连接。
最初,当它无法工作时,PuTTY 上的错误表示服务器无法识别正在使用的公钥。然后,我仔细检查了公钥是否按照~/.ssh/authorized_users
我认为应该的方式添加,并注意到该密钥看起来与我习惯的密钥不同,并发现它的格式不同(以 开头---- BEGIN SSH2 PUBLIC KEY ----
)。然后,我将公钥转换为我习惯在类 UNIX ssh 中看到的格式(ssh-rsa
开头为 )。然后我重新启动 sshd 并再次尝试 - 没有运气。
之后,我查看了来自堆栈网络和其他地方的具有类似问题的用户的一些不同帖子,并尝试了更多更改以使其正常工作,包括:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh -R
我看到有人建议查看日志,/var/log/auth.log
但我找不到,我检查了日志/var/log/secure
,只看到最近失败的 ssh 尝试的一行:
localhost sshd[43706]: Connection closed by authenticating user \username \ip port 11706 [preauth]
(\username 为 linux 用户名,\ip 为 windows 机器的 ip)
我还在某处看到问题可能是由 Windows 文件换行符差异引起的,因此我使用了此处的提示,但在 key 处没有看到任何 Windows 换行符/home/andy/.ssh/authorized_keys
接下来我应该做什么/检查以弄清楚发生了什么?我很擅长调试/排除基于 *nix 的问题,但是一旦 Windows 混合在一起,我就像一条离开水的鱼,不知道在这里做什么。
另外,需要注意的是,我已将 CentOS 计算机上的配置设置为仅 PublicKeyEncryption(并且希望保持这种方式),并且我还禁用了 root ssh(并且希望保持这种方式)。我还成功地通过 ssh 连接到了我的 Mac 上的机器。
小智 1
客户端命令和输出:
$ ssh -p 50022 andy@server
andy@server's password:
Permission denied, please try again.
andy@server's password:
Run Code Online (Sandbox Code Playgroud)
第二个密码提示的出现速度也比平常快得多,几乎是即时的。
服务器端日志sshd.service
:
Connection closed by authenticating user andy 173.63.60.32 port 11706 [preauth]
Run Code Online (Sandbox Code Playgroud)
(其中andy
是用户名、173.63.60.32
服务器IP、11706
源端口是随机的)
问题:
用户andy
不是服务器上其主要组的成员。
即:/etc/passwd
看起来像:(组ID在andy:x:1003:1000:,,,,:/home/andy:/bin/bash
哪里)1000
但
/etc/goup
看起来像:group:x:1000:user01,user02
但排除andy
.
解决方案:
以下任何一项:
andy
为他们所属的组。andy
将s 主要组更改为nogroup
(gid 65534
) etc/passwd
:andy:x:1003:65534:,,,,:/home/andy:/bin/bash
andy
到他们的主要组。 归档时间: |
|
查看次数: |
11910 次 |
最近记录: |