我正在尝试使用 winSCP 连接到我们的远程服务器。之前是可以用的。但从今天开始我无法使用 SFTP 连接到服务器。如果我将协议更改为 SCP,那么我就可以连接。我也可以使用腻子进行连接。
以下是 winSCP 日志。(删除了主机详细信息)
. 2011-11-07 20:18:54.593 Using SFTP protocol.
. 2011-11-07 20:18:54.593 Doing startup conversation with host.
> 2011-11-07 20:18:54.593 Type: SSH_FXP_INIT, Size: 5, Number: -1
. 2011-11-07 20:18:54.593 Server sent command exit status 127
. 2011-11-07 20:18:54.593 Disconnected: All channels closed
* 2011-11-07 20:18:54.624 (ESshFatal) Connection has been unexpectedly closed. Server sent command exit status 127.
* 2011-11-07 20:18:54.624 Cannot initialize SFTP protocol. Is the host running a SFTP server?
. 2011-11-07 20:31:40.036 …Run Code Online (Sandbox Code Playgroud) 因此,为了稍微保护我的服务器,我创建了一个具有 su - root 访问权限的新用户并拒绝 root 登录。现在我无法使用该用户通过 Filezilla 对我的服务器上的任何文件进行 SFTP。这些是我采取的步骤:
/etc/ssh/sshd_config使用Filezilla SFTPPermitRootLogin yes进行编辑PermitRootLogin no。现在,不幸的是,当使用新用户/密码通过 Filezilla 进行 SFTP 时,我可以访问和查看服务器中的所有目录/文件,但无法打开/读取/编辑它们。
我是否需要以 root 用户身份更改权限设置,以便新用户能够执行此操作?我有没有搬起石头砸自己的脚?
编辑:好的,root 被 chmod 了文件 777,这允许我以新用户身份查看/编辑,但是有没有办法简单地向用户授予 SFTP 的所有这些权限,而不是公众/任何人别的?
我在美国有一个虚拟服务器。当我第一次设置它时,我能够使用动态端口转发
ssh -D PORTNUMBER serveraddress
Run Code Online (Sandbox Code Playgroud)
之后我可以设置 Firefox 将其用作 SOCKS5 代理。我不知道发生了什么变化,但由于某种原因,它不再起作用了。
是否有一个地方可以设置是否允许隧道?我尝试了 ssh_config 文件,实际上有一个
Tunnel yes/no
Run Code Online (Sandbox Code Playgroud)
选项,但即使将其切换为 yes 并重新启动后,它也没有改变任何东西。
我应该去哪里看?
编辑(01:41 GMT+1):带有-vvv选项的输出相当长,因此将其上传到pastebin。我希望删除所有敏感数据: http://pastebin.com/r4BVC5F1
编辑(02:13 GMT+1):新输出文件:http ://pastebin.com/VvPVv0ff
我在配置文件中添加了“PermitTunnel”选项,现在我可以使用 -vvv active 登录。但是代理仍然无法工作。我没有更改客户端的设置,至少据我所知没有更改。是的,我使用的是 Mac OSX。
编辑(09:45 GMT+1):这可能与混乱的主机名有关吗?或者可能是但丁或鱿鱼配置相互引用?我真的不知道,为什么它不再起作用了......
最后编辑:好吧,我只是很愚蠢!严重地。一切都很好。问题是我在 SOCKS 服务器设置中输入了服务器的 IP 地址。这不可能行得通。localhost 当然是正确的答案。该死...浪费了这么多时间...谢谢大家!
我正在尝试建立一个环境,其中某个组中的许多用户可以通过 SSH 连接到服务器,然后使用密钥交换或密码在服务器上执行一组预定义的命令。到目前为止,我被告知要查看authorized_keys“命令”部分,但据我所知,这仅对非人类用户有用。
有没有办法将某个用户组的多个命令列入黑名单或白名单?
例如,X 组中的用户应该能够ls、/etc/init.d、rm,但不能执行其他操作。
我有一个 rsync 备份脚本来在两个 Ubuntu 服务器(位于不同国家)之间传输数据。就文件数量而言,正在备份的数据相当大。总共大小约为17GB。该脚本在接收服务器上运行。所以,它基本上是一个拉力。用于登录的公私密钥身份验证。
该脚本运行良好;备份已经成功进行了好几个月了。
最近已经过去6天左右了,备份一直没有完成。rsync 进程运行大约 45 分钟左右。然后就结束了。我不知道为什么它停止了。据我所见,它甚至没有完成构建和扫描文件列表。我将 cron 输出定向到日志文件。在日志中,我看到的只是:receiving file list ... done。但我可以看到没有任何内容被传输到备份目的地。
如果我手动运行脚本,大约 45 分钟后,我只会看到以下内容:./sync.sh: line 51: 9078 Killed $RSYNC $OPTIONS $SOURCE $DESTINATION
我如何以及在哪里可以看到失败的原因?我如何知道哪个服务器实际上正在终止进程,发送者还是接收者?
拉机(脚本运行的地方)是一个低端机器。它是一个具有 256MB RAM 的 KVM 虚拟机。所以,我想知道文件结构的构建是否占用了太多 RAM,从而导致 OOM 错误。但我如何检查是否是这种情况呢?而且,文件并没有显着增加,导致突然失败。
任何提示将不胜感激。
谢谢。
按照 @APZ 的建议,我添加了几个更详细的标志(总共 3 个)并手动运行脚本,将输出重定向到文件。这是最后的输出:
(.... lots of file names....)
received 5795917 names
done
recv_file_list done
get_local_name count=5795917 /storage/ <======== Reached here after about 40 minutes. Was stuck here …Run Code Online (Sandbox Code Playgroud) 我想建立一个 ssh 隧道,通过网关机器将数据从我的计算机传输到远程机器。
我想复制大量数据,因此我使用blowfish进行加密并启用压缩。
以下哪个命令正确设置了加密和压缩:
在 ProxyCommand 中定义压缩和加密:
ssh -L 5555:127.0.0.1:555 -o ProxyCommand="ssh -c blowfish -C user@gateway nc -q0 target 2222" user2@target -v
在主 ssh 命令中定义压缩和加密:
ssh -L 5555:127.0.0.1:555 -c blowfish -o ProxyCommand="ssh user@gateway nc -q0 target 2222" -C user2@target -v
在 ProxyCommand 和 ssh 命令中定义压缩和加密:
ssh -L 5555:127.0.0.1:555 -c blowfish -o ProxyCommand="ssh -c blowfish -C user@gateway nc -q0 target 2222" -C user2@target -v
调试消息 ( -v ) 通知我压缩已启用。
选项3是否使ssh将数据压缩两次?
我在通过 SSH 连接到远程主机时遇到问题。我已将问题范围缩小到本地主机,因为其他客户端每次都会进行名义(快速且稳定)的连接。
尝试通过 SSH 连接到remotehost.example.netfromlocalhost将超时,但大约十分之一的尝试会超时(它挂在此处,然后超时):
515 chris@localhost ~ $ ssh -vvv remotehost-root
OpenSSH_6.4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/chris/.ssh/config
debug1: /home/chris/.ssh/config line 43: Applying options for remotehost-root
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to remotehost.example.net [123.123.123.123] port 12345.
^C
Run Code Online (Sandbox Code Playgroud)
localhost是一个最新的 Arch 系统:
517 chris@localhost ~ $ uname -a
Linux localhost 3.12.1-1-ARCH #1 SMP PREEMPT Thu Nov 21 08:18:42 CET 2013 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我使用 …
是否可以将一台服务器DD到另一台服务器?也许通过 SSH?我环顾四周,看到了 DD 使用 SSH 从本地到服务器的示例,反之亦然,但是是否可以从服务器到服务器做到这一点?
另一个相关问题是 Digital Ocean 使用什么软件来创建其服务器的快照以便稍后恢复?
谢谢,
我有一台 CentOS 6-x64 服务器,通过 Windows Server 2012R2 上的 VirtualBox 运行,但每当我通过 SSH 连接到它时,速度都慢得令人痛苦。Windows 上的 Putty 和 OS X 上的 SSH 都会出现这种情况。我读过无数关于登录缓慢的帖子,但这只是一种全面的迟缓。
这些是我检查过的事情:
我设法弄乱了系统上的一些共享库,现在我的 shell 无法运行,从而将我锁定在系统之外。在远程系统上配置的ssh、sftp和scp似乎都依赖于 shell,因此这些替代方案已不再适用。确实,这不是一个大问题,因为我有一些远程手可以将我的 shell 更改为sh通过控制台。
不过,我很好奇,深入了解 SSH 协议的机制,是否可以在不调用/etc/passwdshell 的情况下对远程系统进行身份验证和执行某些操作(例如,修改 )?
编辑
公平地说,对于建议在ssh 命令字符串(例如)之后ssh myhost /bin/sh指定替代命令/shell 的人:手册页确实指出:
If command is specified, it is executed on the remote host instead of a login shell.
Run Code Online (Sandbox Code Playgroud)
这肯定会令人困惑。