我有一个以前有 3 个服务器的专用网络。现在我添加了第四个,我尝试设置从主入口点到这个新服务器的公钥身份验证。但是,由于某种原因,通常的程序不起作用。
我已经生成了与其他 2 个服务器一起使用的公钥,将公钥添加到新主机的~/.ssh/authorized_keys文件中并验证了/etc/ssh/sshd_config包含PubkeyAuthentication yes. 但是,我不断收到密码提示。
建议?
这是来自尝试连接的调试日志:
$ ssh -vv NEWHOST
OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to NEWHOST [x.x.x.x] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /root/.ssh/id_rsa type 1
debug1: Checking …Run Code Online (Sandbox Code Playgroud) 如何设置匿名 sftp 用户?
我生成 ssh 密钥对,设置/usr/lib/sftp-server为 shell/etc/password并共享私钥(id_rsa),使用此命令用户可以访问
sftp -oIdentityFile=id_rsa public_sftp@host
Run Code Online (Sandbox Code Playgroud)
是个好主意吗?
这是场景:
ssh +------------+
+---->| Server 2 |
+------------+ | +------------+
| Server 1 +---+
+------------+ | +------------+
+---->| Server 3 |
ssh +------------+
Run Code Online (Sandbox Code Playgroud)
我从SSH访问Server 1这两个Server 2和Server 3(而不是从Server 2以Server 3也不周围的其他方法)。
我想从 to 传输一个相当大的文件2,3并想知道通过1充当协调器来执行此操作的最快方法是什么。
更新:我确实在两台服务器之间建立了连接,只是没有来自/到服务器的 SSH 凭据。
假设我有 5 个用户和 100 台启用了远程 shell 的 Linux 机器。如何设置环境以允许这些少数用户使用相同的凭据登录任何机器?
首先,我是一个 linux 新手,所以请不要假设太多的知识。我正在使用 CentOS 5.8(最终版)并使用 OpenSSH 版本 5.8p1。
我已经创建了一个用户playwithbits,我正在尝试将chroot他们转到该目录home/nginx/domains/playwithbits/public
我match在我的sshd_config文件中使用以下语句:
Match group web-root-locked
ChrootDirectory /home/nginx/domains/%u/public
X11Forwarding no
AllowTcpForwarding no
ForceCommand /usr/libexec/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
# id playwithbits 返回: uid=504(playwithbits) gid=504(playwithbits) groups=504(playwithbits),507(web-root-locked)
我已将用户的主目录更改为: home/nginx/domains/playwithbits/public
现在,当我尝试与该用户进行 sftp 连接时,我立即收到以下消息: connection closed
有谁知道我做错了什么?
编辑:遵循@Dennis Williamson 的建议,我已在调试模式下进行连接(我认为......如果我错了,请纠正我)。
通过使用chmod递归将所有文件的权限直接设置为 700,我取得了一些进展。现在,当我尝试登录时收到以下消息(仍然拒绝连接):
Connection from [My ip address] port 38737
debug1: Client protocol version 2.0; client software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol …Run Code Online (Sandbox Code Playgroud) 我可以访问无法通过 SSH 连接的 Ubuntu 服务器 (10.4)。从终端连接超时,从腻子连接被拒绝。
我已经检查过 sshd 正在运行并监听所有接口,iptables 的所有链都是空的,默认是 ACCEPT,额外的防火墙正在接受端口 22 入站和所有出站。我也无法 telnet 到端口 22。
可能是什么问题,我该如何解决?
当我的 Ubuntu 服务器通过 SSH 访问时,我需要通过电子邮件收到通知。
如果可能,我该怎么做?
我读:
但无法修复它:突然(服务一年后,我的 winscp 设置没有变化)它给了我“网络错误连接超时”(我使用的是 ec2-user)(也来自亚马逊控制台)。
更新:已解决。我花了2天没有看自己的IP地址....(因为它过去3年没有改变....)。你的评论在我的脑海中激起了火花。太感谢了。(直到现在我才发现愤怒的用户有几十个讨论,我的提供商的静态地址已更改为动态地址:http : //gathering.tweakers.net/forum/list_messages/1501005/12 ...)
通过 SSH 以 root 身份运行以下命令 (bash) 后:
pkill --help
pkill -h
pkill /?
Run Code Online (Sandbox Code Playgroud)
前两个命令没有为我提供任何信息,这就是为什么运行第三个命令(有点本能......)。
接下来发生的事情是,我与服务器的 SSH 会话关闭,并且无法重新连接。我猜它停止了所有(或大部分)正在运行的进程,包括负责此类会话的守护进程。
我想了解为什么会发生这种情况:我的输入的确切评估(逐步)是什么以及它是什么原因造成的。
我最好的猜测是它与 shell 对 '?' 的评估有关。字符,它可能转换为一些单字符表达式的列表,这些表达式被传递给 pkill,而 pkill 又关闭了这些 PID。