当使用SSH将rsync连接到远程服务器时,如何在远程path中转义空格等? 一个简单的反斜杠转义本地bash提示符的空间,但在远程计算机上,空间被读取为path中断,从而标记该path的结束。 所以当我做rsync -avz /path/to/source/some\ dir/ [email protected]:/path/to/dest/some\ dir/会发生什么情况是远程服务器正在读取/path/to/dest/some/ ,因为它不能远程find目的地,因为实际的目的地是“一些目录”而不是“一些”。 如果我尝试使用相同的命令,并且使用反斜杠和空格来避开本地bash提示符并保留远程服务器的反斜杠(总共三个反斜杠: /path/to/dest/some\\\ dir/ ),的确将反斜杠发送到远程服务器,但是远程服务器然后将该path解释为/path/to/dest/some\/而不是/path/to/dest/some\ dir/仍然将空间和字符。 如果我试图用引号包装path,它的行为几乎是一样的,有效地切断了在这个空间的path。 所以它也只能通过本地bash提示符。 最初我使用的path中有一个“ – ”(空格连字符空格)段,远程服务器rsync: on remote machine: -: unknown option返回一个错误rsync: on remote machine: -: unknown option ,这是启动整个空间的原因 – 转义努力摆在首位。 那么我必须做什么才能使远程服务器正常工作,而不必从远程path中删除空格或连字符等其他错误字符?
我试图跟踪用户最后一次用某个密钥login到Linux服务器。 因此,用户secure在~/.ssh/authorized_keys有5个密钥,我怎样才能跟踪每个密钥的使用时间和使用什么IP访问服务器? 理想情况下,我可以看到Key 1最近一次使用是从127.0.0.1开始的,5天前是从10.0.0.5开始使用Key 2,Key 3和4从未使用过,Key 5是2周前从8.8 .8.8。
最近我经常使用SSH客户端的ControlMasterfunction,这使我可以使用一个单一的SSH-TCP连接用于多个shell,并将端口转发到同一个远程系统。 最令人讨厌的是,第一个打开的shell进程自动成为ControlMaster。 这意味着,如果此进程终止,则使用控制主连接的所有其他shell和端口转发将不可用。 我真的很喜欢什么时候,第一个远程系统的ssh命令会产生一个额外的后台进程来保持连接,只要仍然有连接使用ControlMaster连接,所以我可以简单地closures实际的shell而不必冒险来使其他的crash连接。 理想情况下,后台ControlMaster进程甚至可以configuration为在最终closures之前等待新shell或端口转发的时间来使用ControlMaster。 有没有办法让SSH客户端做这样的事情? 我知道我可以在使用ssh创build第一个shell之前手动创build这样的连接,但是我明确地希望这会自动发生,否则我一定会忘记每隔一段时间执行一次。 使用包装器脚本也不会那么容易,因为我经常在.ssh / config中为远程服务器名称使用已configuration的shorthands,而使用USERNAME @ NETWORK_NAME:NETWORK_PORT作为名称创buildControlMaster套接字。 因此,一个包装将需要理解.config / ssh完全按预期工作。
我想只允许来自3个IP地址的SSHlogin:111.111.111.111和222.222.222.222和333.333.333.333。 我知道,我必须编辑/etc/hosts.allow和/etc/hosts.deny文件。 我的问题是关于这些文件的内容。 我看到了不同的变体: #/etc/hosts.allow 变体1: sshd: 111.111.111 sshd: 222.222.222 sshd: 333.333.333 变体2: sshd: 111.111.111, 222.222.222, 333.333.333 变体3 :(无逗号): sshd: 111.111.111 222.222.222 333.333.333 变体4(带有sshdfwd-X11): sshd,sshdfwd-X11: 111.111.111 222.222.222 333.333.333 的/etc/hosts.deny 变体1: sshd: ALL VARIANT2: sshd,sshdfwd-X11:ALL 哪一个是正确的? 我害怕把我锁起来。 谢谢。
我们有一个公共服务器,它接受来自防火墙后面的多个客户端的SSH连接。 这些客户端中的每一个都使用从端口80的Web服务器的ssh -R命令到我们的公用服务器创build反向SSH隧道。 反向SSH隧道的目标端口(在客户端)是80,而源端口(在公共服务器端)取决于用户。 我们正在计划为每个用户维护一个端口地址的地图。 例如,客户端A将他们的Web服务器端口80隧道到我们的端口8000; 客户B从80到8001; 客户端C从80到8002。 Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver 基本上,我们试图做的是绑定每个用户端口, 不允许他们隧道到任何其他端口。 如果我们通过ssh -L使用SSH的转发隧道function,我们可以通过使用permitopen=host:portconfiguration允许哪个端口通过隧道。 但是,反向SSH隧道没有等价物。 有没有限制每个用户反向隧道端口的方法?
我有一个服务器托pipe在EC2上 。 该服务器基于CentOS基于Linux AMI构build。 它致力于一个客户端项目,我通过SSH连接。 有时,我忘了closures服务器时,不使用,从而产生不必要的成本。 如何让服务器在不活动状态下自动closures, 例如 30分钟后没有SSH连接? 当然,我正在寻找最简单的解决scheme。 一个小时左右的支票也可以,只是可靠的工作。
build立连接时只能写入日志条目吗? 我努力了: iptables -I OUTPUT -p tcp –dport 22 -j LOG –log-level notice –log-prefix "outgoing ssh connection" loggingSSH出口连接,但是这会logging每一个数据包,这是你可以想象的有点压倒性的监控目的。 我正在运行SLES 11 SP3。 所以,如果有人能指出一个办法,只有在build立合同时才写一个日志条目,我将不胜感激。
我能够使用公共密钥为root用户设置sshlogin,并试图对非root用户应用相同的逻辑。 我试图排除这个问题是徒劳的。 我使用本地计算机和远程服务器的centos。 这里是我的远程服务器的sshd_config文件的要点, RSAAuthentication yes PublicKeyAuthentication yes AuthorizedKeysFile /etc/ssh/user/authorized_keys PasswordAuthentication no UsePAM no PermitRootLogin without-password 我已经将我的授权密钥文件从用户的家中移到了/ etc / ssh / user / authorized_keys,因为我在centos中阅读了有关家庭目录encryption的内容。 我还更改了与非root用户关联的所有文件/目录的所有权。 不知道我在configuration中缺less什么步骤,因为相同的configuration对于根远程login非常有效。
使用ssh命令行(OpenSSH),我可以指定服务器的主机密钥指纹吗? 这是winscp.com使用(例如) -hostkey="ssh-rsa 2048 AA:BB:CC…etc 我已经阅读了手册页几次,我很抱歉,如果我错过了那里显而易见的。 我不想只是自动接受主机密钥,我不想要求用户更新其known_hosts ,而是在命令行上以某种forms指定主机密钥。
哪个configuration文件, .bashrc或.bash_profile是ssh-agent的适当位置? 我正在寻找解释交互式shell和loginshell之间差异的答案。