首先先說明一下有密碼的,涉及到root登陸權限的問題:
1、用超級管理員身份登錄,修改 vi /etc/ssh/sshd_config,
找到
把其中的permitRootLogin 修改成:
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
這個語句就控制着Xshell是否可以用root連接
接着說一下Xshell如何無密連接虛擬機:
ssh登錄提供兩種認證方式:口令(密碼)認證方式和密鑰認證方式。其中口令(密碼)認證方式是我們最常用的一種,這里介紹密鑰認證方式登錄到linux的方法。
使用密鑰登錄分為3步:
1、生成密鑰(公鑰與私鑰);
2、放置公鑰(Public Key)到服務器~/.ssh/authorized_key文件中;
3、配置ssh客戶端使用密鑰登錄。
一、生成密鑰公鑰(Public key)與私鑰(Private Key)
打開xshell中的工具下的新建用戶密鑰生成導向
在“密鑰類型”項選擇“RSA”公鑰加密算法,“密鑰長度”選擇為“2048”位密鑰長度
保存在桌面
之后完成即可
二、放置公鑰(Public Key)到服務器
使用Xftp將文件發送到虛擬機(沒有此工具的可以參考前面的博客):
然后運行如下命令,將公鑰(Public Key)導入到“authorized_keys”文件:
三、配置ssh客戶端使用密鑰登錄。
打開xshell,填寫主機地址,選擇22端口
方法選擇public key,用戶名一般為root,選擇用戶密鑰,填寫剛才設置的密碼
最后,就可以用Xshell無密遠程連接虛擬機了
注意:在最后一步遇到了一些問題,開始用Xshell連接顯示沒有在遠程主機上注冊,最后在/etc/ssh/sshd_config里面發現AuthorizedKeysFile .ssh/authorized_keys,這條語句前需要加上/home,否則找不到證書,這是絕對路徑可以理解,但是為什么有的人不加也可以遠程登陸呢?
答案:root用戶的家目錄是root,普通用戶的家目錄是home,我需要遠程連接root用戶,應該把.ssh文件放在root目錄下,而不是home目錄下,這樣就可以找到密鑰證書了!