記錄乙個ssh連線大坑

2021-10-05 22:35:22 字數 1815 閱讀 6719

今天在嘗試登入一台使用者機器的時候遇到乙個大坑,通常ssh連線都是用的金鑰對認證的方式,當要遠端到一台機器的時候,需要先登記自己的公鑰,然後申請乙個登入許可權,其實就是在遠端的系統上建立乙個以你當前使用的系統的使用者名稱的使用者,並開放ssh遠端連線的許可權,然後我們ssh連線機器的時候就可以通過ssh -p port ip的方式登入到使用者系統,以這個命令登入時會預設用你當前的使用者名稱作為遠端連線的使用者賬戶,如果要指定其他使用者登入可以使用ssh -p port username@ip登入,因為第一次做運維,沒有深入了解ssh的登入,以前自己用虛擬機器做實驗ssh遠端登入的時候都是兩台機器以root登入,然後用其中一台去ssh另外一台,沒有更改預設的ssh埠22埠,所以就直接用ssh ip命令登入系統,其實這條命令會被轉換成ssh root@ip方式去登入系統,所以登入後其實就是root使用者,因為當前的機器是用的root使用者登入,而被登入的系統中也有乙個root使用者,所以能夠登入上去,但是如果當前不是root使用者登入,而是用其他使用者登入的話會出現兩種情況。

這是以ssh ip的預設方式登入遠端機器的方式,曾一度讓我認為要切換到root使用者才能使用ssh ip這個命令登入,其實之所以能夠用root身份以ssh ip這個命令登入到遠端機器是因為遠端機器也有乙個root使用者(linux系統必須有的乙個使用者),用root使用者以ssh ip命令登入遠端系統的時候變成了ssh root@ip這條命令,但是如果你用非root使用者登入,那麼就變成了ssh currentusername@ip,如果對方的系統中沒有當前使用的使用者相同的使用者賬戶就會登入不上,需要手動指定對方的使用者名稱ssh username@ip,這個username就代表對方系統中存在的使用者名稱。

那有沒有辦法每次登入的時候都不用ssh username@ip這樣手動敲username呢?特別是在企業,使用者名稱一般都比較長,敲起來特別麻煩,答案是有的。

host *

user defaultname

通過寫入這兩行語句,以後每次執行ssh ip都會變成ssh defaulname@ip,就不用手動輸入使用者名稱了。

配置windows子系統

windows中很多linux遠端工具,例如putty,securecrt等,這些工具都非常好用,但是有些要收費,又不敢隨便使用破解版,怕有後門,畢竟剛做運維,面對幾萬個節點的龐大系統還是要謹慎點的,以後熟悉了就可以隨便玩了。

配置windows子系統的步驟:

在控制面板\程式\程式和功能中勾選hyper-v,啟用windows自帶虛擬機器,並重啟系統。

在windows應用商店中搜尋自己喜歡的linux發行版系統並安裝。

不出意外的話啟動時會報錯,需要點開報錯資訊提示url頁面按操作執行一條powershell命令。

3步驟完成後啟動剛剛安裝的linux系統,並且設定使用者名稱。

更新源yum/apt等其他發行版的源。

安裝ssh遠端服務(ubuntu/debian)apt-get install ssh(rhel/centos)yum install -y ssh

生成金鑰對ssh-keygen

刪除~/.ssh/目錄下的私鑰和公鑰檔案,複製當前windows中生成的私鑰和公鑰檔案到當前linux子系統的.ssh目錄下

完成配置

發現乙個Mat轉QImage乙個大坑

最近在做opencv的乙個專案,在子執行緒中執行攝像頭同時在主線程中顯示,但是發乙個問題,關閉.exe檔案之後總是提示qtguid.dll 0xc0000005 讀取位置 時發生訪問衝突,ui label setpixmap qpixmap fromimage img 總是提示這一句是有問題,給我找...

踩了乙個MyBatis的大坑

最近在專案中做了乙個上傳檔案 類雲盤 功能。返回檔案列表的時候需要left join 使用者表,取得上傳者的名字。專案用的是mybatis,寫好之後發現,對於每乙個上傳者,只取到了他上傳的最後乙個檔案,看起來好像是變成了inner join。但是我在mysql workbench裡面用同樣的語句得到...

ssh連線緩慢的乙個解決辦法

問題描述 嘗試從其他伺服器通過ssh服務遠端到同一區域網的伺服器172.16.54.xx,發現要等待至少10秒時間目標伺服器才有響應。嘗試ping telnet該伺服器,響應速度很快。解決辦法 1 修改sshd config配置檔案 vi etc ssh sshd config 新增下面一行,關閉s...