Rsync over ssh,每次都很好用。
但是,尝试 rsync 到仅允许 sftp 登录但不允许 ssh 登录的主机时,会出现以下错误:
rsync -av /source ssh user@remotehost:/target/
协议版本不匹配——你的外壳干净吗?(有关解释,请参阅 rsync 手册页)rsync 错误:compat.c(171) [sender=3.0.6] 处的协议不兼容(代码 2)
这是 rsync 手册页中的相关部分:
此消息通常是由您的启动脚本或远程 shell 工具在 rsync 用于其传输的流上产生不需要的垃圾引起的。诊断此问题的方法是像这样运行远程 shell:
Run Code Online (Sandbox Code Playgroud)ssh remotehost /bin/true > out.dat然后看看out.dat。如果一切正常,那么 out.dat 应该是一个零长度文件。如果您从 rsync 收到上述错误,那么您可能会发现 out.dat 包含一些文本或数据。查看内容并尝试找出产生它的原因。最com?原因是错误配置的 shell 启动脚本(例如 .cshrc 或 .profile)包含非交互式登录的输出语句。
在我的系统上尝试这个在 out.dat 中产生了以下内容:
ssh-dummy-shell:不允许的命令。
正如我所想,主机不允许 ssh 登录。
以下链接显示可以使用带有 sshfs 的保险丝来完成此任务 - 但是它非常慢,并且不适合生产使用。
有没有机会让 rsync sftp 工作?
ssh 是否可以允许某个用户使用密码,但拒绝其他人使用密码?
基本上我想允许用户进行密码验证,justin但其他所有人都必须使用公钥。
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
虽然似乎是全球性的,但无法由用户指定。
大多数 OpenSSH 配置指南建议禁用密码身份验证以支持基于密钥的身份验证。但在我看来,密码认证有一个显着的优势:无需密钥即可从任何地方进行连接。如果始终使用强密码,这不应该是安全风险。还是应该?
想要一种通过 LDAP 进行 SSH 密钥身份验证的方法。
我们将 LDAP (slapd) 用于目录服务,并且我们最近转向使用我们自己的 AMI 来构建实例。AMI 位很重要的原因是,理想情况下,我们希望能够在实例运行后立即通过密钥身份验证使用 SSH 登录,而不必等待我们有点慢的配置管理工具启动要添加的脚本实例的正确密钥。
理想的情况是,在将用户添加到 LDAP 时,我们也添加了他们的密钥,他们可以立即登录。
密钥身份验证是必须的,因为基于密码的登录既不安全又麻烦。
我读过这个问题,它表明有一个名为 OpenSSH-lpk 的 OpenSSH 补丁来执行此操作,但 OpenSSH 服务器不再需要 >= 6.2
添加了 sshd_config(5) 选项 AuthorizedKeysCommand 以支持除了(或代替)从文件系统之外,还支持从命令中获取 authorized_keys。该命令在 AuthorizedKeysCommandUser sshd_config(5) 选项指定的帐户下运行
如何配置 OpenSSH 和 LDAP 来实现这一点?
有什么方法可以在 Linux 机器上配置用户(在本例中为 Centos 5.2),以便他们可以使用 scp 检索文件,但实际上无法使用 SSH 登录到服务器?
这个问题类似于SSH公钥认证——一个公钥可以供多个用户使用吗?但情况正好相反。
我正在尝试使用 ssh,因此任何 ssh 服务器都可以为您提供答案。
我可以将多个公钥链接到同一用户吗?这样做有什么好处?此外,是否可以为使用的不同密钥设置不同的主目录(所有这些都链接到同一用户)?
如果我不清楚,请告诉我。
谢谢。
我想知道是否有办法更改我在 SSH 到我的 Ubuntu 服务器后放入的默认目录。
当我登录到我的服务器时,99% 的时间是访问特定目录中的文件:
/var/www/websites
Run Code Online (Sandbox Code Playgroud)
是否有我可以编辑的配置文件,以确保我在登录时直接进入该目录?
我希望能够通过桌面上的单个 ssh 命令在远程服务器上启动屏幕会话。但是, screen 似乎需要一个终端,通过 ssh 运行命令时该终端不可用。
所以显而易见
ssh root@my.machine screen "tail -f /var/log/messages"
Run Code Online (Sandbox Code Playgroud)
(作为示例)不起作用,并给出
Must be connected to a terminal.
Run Code Online (Sandbox Code Playgroud)
我希望 ssh 在屏幕下启动命令,以便我稍后登录并附加到我将手动启动的屏幕会话。
再说一遍,我们都会犯错,而我刚刚犯了一个。
简史:当我注意到一些奇怪的行为时,我正在租用的 VPS (Debian) 上做一些事情。使用该netstat命令,我看到了一个通过 SSH 的非授权连接。我不知道该怎么办,所以我决定使用iptables以下命令关闭他的连接:
iptables -A INPUT -p tcp --dport ssh -s IP -j DROP
Run Code Online (Sandbox Code Playgroud)
但我累了,我写了
iptables -A INPUT -p tcp --dport ssh -j DROP
Run Code Online (Sandbox Code Playgroud)
我把自己(和其他人)踢出去了......
我该如何解决?