ssh無密碼登錄和autossh實現反向ssh

ssh無密碼登錄和autossh實現反向ssh

    一. ssh無密碼登錄的方法(以A機器登錄B機器爲例)

    1.  使用ssh-keygen生成private key和public key,具體方法如下:

        在機器A上執行 ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    2. 採用ssh-copy-id將key文件copy到B機器

        繼續執行 ssh-copy-id  username@ip  -p xxxx

        其中, username是機器B的登錄用戶名,ip是機器B的IP,-p是指定ssh的端口(默認是22,如果是VPS,則不一定是22)

    3. 然後提示你輸入登錄機器B的密碼,完成後下次就可以直接採用ssh  -p xxxx  username@remote_ip的方式來無密碼登錄機器B了。


    二.  autossh實現反向ssh

    應用場景:購買一臺具有公網IP的VPS,然後在任何一個地方通過ssh登錄到該VPS,然後再反向ssh可以登錄到公司裏的機器,這樣就可以在家裏面來工作了,前提是公司的linux機器一直在開機。

    1. 假設VPS是機器B,公司裏的機器是A,通過上面的方式首先在機器A上配置ssh無密碼登錄到B。

    2. 採用autossh來建立一條機器A和B的連接,具體方法是:    

 autossh -M 5678 -NR 8888:localhost:22    [email protected]  -p xxxx

     上面命令行中“8888:localhost:22”表示我在VPS上反向ssh時要登錄的主機是機器A,端口是8888, 後面的"[email protected]  -p xxxx"表示我的VPS用戶名是user,-p是指定ssh的端口。

     注意:上面的命令是阻塞的,所以在後面加上 & 來在後臺執行。

    3. 登錄機器B上,執行: ssh  localhost  -p 8888,就可以登錄到機器A了。

    因爲機器A是公司裏的服務器,且在公司內網裏面可以訪問公司其它機器,平時工作的程序等資源都在機器A上面,所以工作起來比較方便,但有時候不一定每天都去公司,想在空裏辦公,那怎麼辦呢? 所以購買一臺VPS,也就是機器B,它具有公網IP,所以可以在家裏登錄到B上,再通過機器B反向ssh到公司裏的機器A,這樣就可以愉快的幹活啦。Linux下玩起來好爽的感覺。   

   

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章