配置:
VMware Ubuntu :
IP: 192.168.10.10/24 (保證與主機在同一網段即可)
模式: 僅主機 / NAT (下面逐一介紹)
模式介紹:
僅主機:
虛擬機與外界隔開,只與主機通信
NAT:
可以連通互聯網
Windows10:
-
如果虛擬機是僅主機模式,那麼配置
VMnet1
,我配置的是192.168.10.2
此時ping192.168.10.10
(虛擬機ip):
再用虛擬機ping192.168.10.2
:
-
如果虛擬機是NAT模式,那麼配置
VMnet8
, 我配置的是192.168.10.1
此時ping192.168.10.10
:也能ping通。
再用虛擬機ping192.168.10.1
,能ping通
如果配置沒錯,但是虛擬機內ping不通,可以嘗試切換windows的wifi網絡信號(如切換到熱點、或熱點切換到wifi)
不管上述採用哪種模式,下面使用XShell與虛擬機建立ssh連接的操作都一樣。
- 當然前提是虛擬機內裝了
ssh
.- 虛擬機內輸入
ssh localhost
: 提示Connection refused
說明未安裝
輸入以下命令安裝ssh:apt-get update
apt-get install openssh-server
- 安裝完畢後:
/etc/init.d/ssh start
啓動 ps -e | grep ssh
檢測是否有sshd
,有則安裝成功。
- 虛擬機內輸入
若雙向都能ping通則可以用XShell建立連接:
在Xshell輸入:ssh 192.168.10.10
輸入用戶名,mima,連接成功
這種是通過口令
連接,也可以選擇通過密鑰
進行連接,安全性更高。
Ubuntu本地生成ssh密鑰
:
-
ssh-keygen
會讓你選擇路徑,直接回車,默認/root/.ssh/id_rsa
(root身份)或者/home/dave/.ssh/id_rsa
(非root身份,我的是這個)
設置密碼,也可以直接回車,不設(我沒設置)。 -
將生成密鑰傳至遠程主機
ssh-copy-id 192.168.10.1
-
對Ubuntu進行設置,使其只允許密鑰驗證,拒絕口令驗證方式。
vim /etc/ssh/sshd_config
PasswordAuthentication
後改爲prohibit-password
(78行)
-
重啓sshd
systemctl restart sshd
-
XShell中遠程登錄
ssh 192.168.10.10
輸入用戶名後,不能輸入密碼,只能用密鑰
登陸。
XShell與虛擬機建立密鑰 免密登陸虛擬機
上面的方法(通過虛擬機生成密鑰)不通過的話,可以通過XShell生成密鑰,再利用Xftp
連接虛擬機將公鑰傳入虛擬機(服務器)。私鑰導入XShell(客戶端)
一路下一步直到…保存到桌面(得到.pub公鑰
)
然後用戶密鑰管理者
->導出
(私鑰
)
-
私鑰
放到XShell
,公鑰.pub
註冊到虛擬機
(服務器
) -
首先將
公鑰
文件通過Xftp導入虛擬機
(教程見通過Xftp實現虛擬機(服務器)與主機傳輸文件) -
導入虛擬機後
.pub
文件(公鑰
)在我的home目錄(隨意保存),然後將其轉移到/home/dave/.ssh
目錄:
在該目錄使用:mv id_rsa_2048.pub /home/dave/.ssh
(如是root用戶,則 /root/.ssh) -
cat id_rsa_2048.pub >> authorized_keys
: 將公鑰.pub
註冊到authorized_keys
文件 -
(如果是用)root
登錄,需要更改vim /etc/ssh/sshd_config
中的PermitRootLogin
更改爲yes,不是的話不用管這步,更改後systemctl restart sshd
-
接下來用XShell選擇public key登錄,密碼我設的空,導入私鑰直接確定
連接成功。
我出現遠程主機未註冊密鑰錯誤是因爲.pub
文件應該註冊(追加內容)到/home/dave/.ssh
內的authorized.key
,(我註冊到/etc/ssh
了,我丟,檢查半天),目錄結構如下: