• Home
  • About
    • Tardis In The Moon photo

      Tardis In The Moon

      Moon is a minimal, one column jekyll theme for your blog.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

some ssh usages

14 Feb 2015

Reading time ~1 minute

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端口的数据加密等。



linuxsysops Like Tweet +1