Articles of ssh

使用特殊字符的SSH远程执行命令

执行远程命令时出现问题,通过具有特殊字符的SSH。 我试图从MySQL导出数据库作为备份的目的。 这是我在我的本地脚本中的命令: #!/bin/bash ssh user@host "mysqldump -u dbname -p'p$ssw0rd' –lock-tables=false dbname > ~/sites/mysite/backup/dbname.sql" 正如你所看到的,我正在使用我的密码附近的字符。 当我执行这个脚本时,我得到以下错误: mysqldump: Got error: 1045: Access denied for user 'dbname'@'localhost' (using password: YES) when trying to connect 但是,当我手动进入机器并执行命令时,它执行得很好。 我得到的印象是,通过ssh执行命令丢失了一些东西,并且密码没有通过。 我怎样才能执行我的命令与特殊字符通过SSH?

VPC SSH端口转发到私有子网

好的,所以我一直在为这个困境而绞尽脑汁。 我有一个公共子网和私人子网的VPC设置。 NAT是当然的。 我可以从SSH连接到公有子网中的实例以及NAT。 我甚至可以连接到公共实例的私有实例。 我改变了私人实例SSHDconfiguration接受端口22和任意端口号1300.这工作正常。 但我需要设置它,以便我可以连接到私人实例直接使用1300端口号,即。 ssh -i keyfile.pem [email protected] -p 1300 和1.2.3.4应该将它路由到内部服务器10.10.10.10。 现在我听说iptables是这个工作,所以我继续研究,并用一些路由玩弄。 这些是我在公共实例(而不是NAT)上设置的规则。 我不想为此使用NAT,因为AWS在设置NAT时会自动预先configurationNAT实例,而且我听说使用iptables会搞砸了。 *filter :INPUT ACCEPT [129:12186] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [84:10472] -A INPUT -i lo -j ACCEPT -A INPUT -i eth0 -p tcp -m state –state NEW -m tcp –dport 1300 -j ACCEPT -A INPUT -d 10.10.10.10/32 -p tcp […]

在后台移动正在运行的进程,并保持运行,即使断开连接

你已经有了一个正在运行的进程,你想把它放在后台运行。 如果你想确定在closures你的ssh连接之后这仍然会运行,你应该怎么做? 注意:当你想做出这个决定时,你已经在运行这个过程。 我知道Ctrl-Z和bg会让它在后台运行,但是当你closuresssh连接时,恐怕进程将会被终止。

尾巴:inotify不能使用,回到轮询:打开的文件太多

tail: inotify cannot be used, reverting to polling: Too many open files 我在Ubuntu(AWS ec2)上运行apache和tomcat服务器。 每当我尝试尾巴tomcat的catalina.out我得到太多打开的文件。 但是我可以使用vi查看它。 在互联网上search后,我尝试了下面的命令: lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head 结果如下 17 5650 17 5178 13 5972 10 5976 10 5974 9 5977 9 5975 9 5973 8 5978 4 […]

如何find没有具体内容的文件?

我有很多已经定义了SPFlogging的文件 grep -iv=spf *.db /var/named/domain.com.db domain.com. 14400 IN TXT "v=spf1 +a +mx +ip4:XXX.XXX.XXX.XXX ?all" 并希望find没有SPFlogging的所有文件。 一些提示?

networking故障后如何configurationSSH客户端超时?

比方说,我通过SSH从客户端连接到服务器,并在会话中间拉动服务器的networking电缆。 在客户端上,ssh连接保持活动状态约15分钟,之后发生“Broken pipe”消息。 我怎样才能调整这个超时? 在我的情况下,我需要减less它,以便在出现networking问题时提前SSH失败。 我发现了很多关于如何避免在空闲会话上断开连接的信息,或者有更长的连接build立超时,但是没有build立SSH连接本身的超时。 我也知道在TCP层有这样的超时,但是我怀疑SSH使用不同的值来设置套接字,因为TCP的时间通常在1分钟左右,而不是我用SSH观察的15分钟。 客户端和服务器都是Ubuntu 14.04服务器版本。

在stunnel上反向ssh隧道(或者只是反向回落stunnel连接)

我正在创build一个可以在NAT或任何防火墙后面部署的安全“保pipe箱”,呼叫一个受控制的可公开访问的服务器,然后从服务器启动控制。 我知道这很容易用ssh -R命令完成,但是,我正在寻找一些能够通过适当的SSL / TLS和端口443有效避开IDS / IPS的东西。 目前我的设置工作(只SSL)有我的Dropbox(我们将这个客户端)调用,并启动与服务器的stunnel连接。 然后我可以从客户端手动ssh到服务器。 这很好,但是,我需要能够通过build立的stunnel从服务器ssh到客户端。 问题: 我可以通过现有的stunnel连接(由客户端发起的stunnel)直接从服务器ssh。 这可能需要一个stunnelconfiguration更改,我只是有点失去了我应该改变。 我可以通过stunnel从客户端反向SSH隧道到服务器,以便服务器有一个本地端口ssh回到客户端? 如果是这样,我一直无法得到ssh -R命令正常工作,因为我想我最终创build一个循环。 以下是我的stunnelconfiguration: 服务器: cert=/path/to/cert.pem pid=/tmp/stunnel.pid [ssh] accept = 443 connect = 127.0.0.1:22 客户: cert=/path/to/cert.pem pid=/tmp/stunnel.pid client=yes [ssh] accept=2200 connect=<serverpubip>:443 示例SSH命令尝试通过通道连接从客户端到服务器进行反向: ssh -i /path/to/cert -R 2200:localhost:2200 -p 2200 admin@localhost -f -N 请记住,要求是只有客户端可以调用服务器来启动初始连接(stunnel),并且stream量必须通过格式良好的SSL / TLSencryption。 我还需要从服务器获得对客户端的shell访问权限。 提前致谢! 更新: 它最终是一个糟糕的SSH命令。 这对我工作的ssh命令是: ssh -i […]

如何访问不可达的AWS实例?

我有一个AWS实例,突然间, 我通过SSH和Web服务器都失去了访问权限。 我曾经通过公共弹性IP(54.76.201.91)访问,所以我确信安全组是可以的。 现在IP不响应,ssh端口closures,也是端口80。 如果我按下获取系统日志,我可以看到: 正如我可以看到IP 169.254.169.254我认为有一个DHCP问题。 你可以在这里看到完整的日志 我曾尝试过不成功? 重新附加新的弹性IP 通过浏览器Java SSH Client连接 创buildAMI(工作),并使用新的弹性IP启动新实例 所以我的问题是 有没有其他方法可以连接?

如何build立一个安全的Git仓库?

我按照这个教程在EC2实例上设置了一个git仓库。 http://git-scm.com/book/ch4-4.html 。 基本上,我添加一个新的git用户,并将我的公钥包含在authorized_keys中。 build立git用户之后,我只是通过git init –bare初始化一个新的回购。 但是,我注意到,我可以轻松地克隆它,而不需要我的私钥。 有没有办法强制它只能通过SSH获得,所以authorized_keys跟着? 我猜它是使用默认的端口9418,似乎不支持身份validation的git。 UPDATE 好吧,我已经尝试了一个没有任何键的新鲜盒子,我无法login或克隆我的回购。 我意识到ssh-add -D由于某种原因不适合我。 我正在select最有帮助的答案,谢谢。

X分钟后终止SSH隧道,即使它仍在使用?

我正在为某些备份过程设置一些后台SSH隧道。 但是我担心ssh进程只是坐在一旁。 在我的脚本结尾,我杀了PID,但是如果我的脚本发生了什么,它不能完成。 我想要一些更健壮的东西。 有没有办法让SSH隧道在X秒/分钟后自杀? 目前我是这样开始的 ssh -f -N -L 14880:internalserver:3306 gateway.example.com 然后使用lsof来获取打开该端口的PID。