tips one
曾经有点傻乎乎的上传公钥每次都是用scp,后来发现原来还有个更好用的ssh-copy-id, 可以直接 -i 指定公钥文件,这样省去了scp 过去后还要手动导入到authorized_keys这一步。
ssh-copy-id -i ~/.ssh/id_rsa.pub user@my.server.org
tips two
开启本地端口监听,把此监听的端口的数据转发到远端服务器,可用做ssh代理:
ssh -N -f -D 1080 user@remote.server.org
- ‘-N’ 表示不执行远端命令,对只做端口转发来说很有用。
- ‘-f’ 表示在后台运行。
- ‘-D’ 表示开启一个本地的socket端口用来监听,后跟端口号。
然后应用程序可以使用此命令开启的socket代理,地址为127.0.0.1,协议为socket,端口为上面命令指定的端口,本例中为1080。 这样所有本地发往1080的数据都会加密传输到远端服务器走一遍,利用远端服务器中转了数据。
tips three
监听本地某端口,然后将数据发送到主机A,同时使主机A将数据发送到主机B的某端口:
ssh -CNfg -L 2222:192.168.1.2:22 root@192.168.1.1
- ‘-L’ 表示绑定本地的端口2222到192.168.1.2的22端口
- 最后一部分使ssh的常规部分,-L的绑定最主要的是需要192.168.1.1上面的root用户(可以是其他用户)进行转发,所以需要知道192.168.1.1上的用户密码。
操作之后,对本地的2222端口进行的操作就像是对192.168.1.2的22端口操作一样,所以在本地使用192.168.1.2上的ssh用户连接本地的2222端口(‘ssh -p2222 user@127.0.0.1’),即可登录192.168.1.2。
此操作适用于A<–>B<–>C,此种AC不能互联的情况。实际操作中不仅限于22端口,可以用与对80端口的数据加密等。