SSH Tips

SSH隧道

生产环境中的集群往往在一个局域网中,而该局域网只能通过某台特定的堡垒机来访问。这样的网络环境下可以通过SSH隧道将一些端口隐射出来,比如CM的7180和HUE的8888端口,这样就可以在本机上通过浏览器来访问CM和HUE了。

ssh -C -f -N -g -L 7180:master-ip:7180 接口机IP -p 8282

ssh -C -f -N -g -L 7180:master-ip:7180 接口机IP -p 8282
上述命令意思是通过接口机(ssh端口为8282)将master-ip机器的7180端口隐射到本机的7180端口,这样可以通过访问http://localhost:7180来访问master-ip机器的7180端口。

shell中 diff命令怎么比较远程和本地的文件夹

比较文件可以这样写: 
ssh host "cat /dir/test.txt" | diff - /dir/test.txt 

比较两个文件夹也是diff dir1 dir2。加上-r是递归。 

远程目录,先用sshfs把远程目录挂载到本地。然后就像普通的diff一样了。 

远程目录,先用sshfs把远程目录挂载到本地。然后就像普通的diff一样了。 

批量配置SSH 免密钥登录脚本

ssh执行远程服务器需要sudo提权的脚本

ssh的-t参数

 -t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty.

中文翻译一下:就是可以提供一个远程服务器的虚拟tty终端,加上这个参数我们就可以在远程服务器的虚拟终端上输入自己的提权密码了,非常安全


ssh -t -p $port $user@$ip "remote_cmd"

远程SSH两级跳转用户sodu的问题--sudo: no tty present and no askpass program specified

sudo -u mysql mkdir /mysqllog/log/a1.log

mac 上使用ssh-copy-id 上传公钥 实现不输入密码登录

1、准备ssh-copy-id

brew install ssh-copy-id

2、生成私钥公钥

ssh-keygen -t rsa -b 1024

3、将公钥上传致服务器(~/.ssh/authorized_keys)

ssh-copy-id -i 公钥 [email protected]

减少ssh连接连接超时时间(Timeout)

用以下的方法可以减少ssh连接超时等待的时间:
方法:ssh -o ConnectTimeout=3 192.168.0.10
或者修改sshd_config文件里面的UseDNS 选项,改为UseDNS no

ssh breaks out of while-loop in bash

The problem is that ssh reads from standard input, therefore it eats all your remaining lines. You can just connect its standard input to nowhere:

ssh $USER@$SERVER "cd ${REMOTE_PATH}; mkdir -p $i" < /dev/null
You can also use ssh -n instead of the redirection.

25个必须记住的SSH命令

从某主机的80端口开启到本地主机2001端口的隧道
ssh -N -L2001:localhost:80 somemachine


比较远程和本地文件

ssh user@host cat /path/to/remotefile | diff /path/to/localfile –


通过SSH运行复杂的远程shell命令

ssh host -l user $(<cmd.txt)

ssh 免密码登录

How to check if dir exist over ssh and return results to host machine

if (ssh username@ssh_server '[ -d /directory ]')

利用 ssh 的用户配置文件 config 管理 ssh 会话

Host    别名
HostName        主机名
Port            端口
User            用户名
IdentityFile    密钥文件的路径