Ubuntu下autossh 解決內網訪問

2021-10-12 01:49:51 字數 1904 閱讀 7163

需要訪問的目標內網伺服器

修改公網主機 b 的 ssh 配置檔案/etc/ssh/sshd_config

gatewayports yes
這樣可以把監聽的埠繫結到任意 ip 0.0.0.0 上,否則只有本機 127.0.0.1 可以訪問。

重啟 sshd 服務

sudo

service sshd restart

在內網主機 a 上,執行以下命令安裝 autossh

yum install autossh  #centos

apt-get

install autossh #ubuntu

斷線免密登入自動重連

ssh 反向鏈結會因為超時而關閉,如果關閉了那從外網連通內網的通道就無法維持,為此我們需要結合免密碼登入及 autossh 來提供穩定的 ssh 反向**隧道。

1、在內網主機 a 上產生公鑰和私鑰

ssh-keygen
然後按三次回車執行預設選項生成公鑰和私鑰。會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub 或 id_dsa,id_dsa.pub

2、拷貝秘鑰 在內網主機 a 上繼續執行如下命令,將內網主機 a 上的秘鑰檔案 copy 到公網主機 b 中。

ssh-copy-id  username@ip
其中「username」是公網主機 b 的使用者名稱,ip 為公網主機 b 的 ip,然後按照提示輸入公網主機 b 的密碼就完成了。

注意

前提是公網伺服器的22001埠(也可自定義)已經開放,沒有的話先去設定安全組

autossh -m 4010 -nr 22001:localhost:22 username@***.***.***.*** (-p ***x)
引數解釋:

**解釋:

檢視埠情況

lsof -i:4010
在 ubuntu 中我們可以使用 systemd 管理 autossh 的開機啟動問題(舊版本中可以使用 init.d)。配置很簡單,只需要建立乙個/etc/systemd/system/remote-autossh.service檔案:

[unit]

description=autossh service

for remote tunnel

after=network-online.target

[service]

user=your_username

execstart=/usr/bin/autossh -m 4010 -nr 22001:localhost:22 remote_user@a_a_a_a

[install]

wantedby=multi-user.target #這個target組內的所有服務都會開機自啟,這才是systemctl的關鍵

這樣就建立了乙個remote-autossh服務,並指定其在網路服務啟動後啟動。可以執行systemctl daemon-reload && systemctl start remote-autossh立即啟動服務,或者systemctl enable remote-autossh.service啟動服務並設定為開機啟動。

需要注意的是,配置檔案中的 autossh 命令需要替換為其絕對位址,以及不支援-f引數。

VirtualBox下Ubuntu更改解析度方法

在windows中用virtualbox v3.0.2 安裝ubuntu v9.0.4 預設按照800 600顯示,可以採用下列方式更改解析度 1 載入vbox的guest additions 2 執行乙個終端 3 執行su 更改到root使用者 如果更改失敗,先啟用root使用者 4 進入 med...

Linux下外網遠端內網 autossh

1 兩台機器生成金鑰檔案 root node1 10 18 06 ssh keygen 直接按 回車鍵 root zabbix 10 19 14 ssh keygen 直接按 回車鍵 2 傳送金鑰檔案 把檢視到的內容 cat root ssh id rsa.pub 複製貼上到 vim root ss...

Ubuntu下firefox中文亂碼的解決辦法

新安裝的ubuntu 9.10裡的firefox瀏覽器顯示flash時會出現中文亂碼問題,其實只是相關的設定有些問題,解決方法如下述 1.查詢49 sansserif.conf配置檔案。cd etc fonts conf.d ls2.備份49 sansserif.conf配置檔案。sudo cp 4...