1 配置hosts
文件
命令:vi /etc/hosts
在文件尾部添加
192.168.1.106 linux1
192.168.1.107 linux2
192.168.1.108 linux3
192.168.1.109 linux4
2 安裝ssh
2.1 什么是ssh
- 傳統(tǒng)的管理員對服務器的管理
管理員通過遠程登陸的方式鸠匀,對通過網(wǎng)相連的分散于各處的多臺主機進行管理操作逾柿。
-
管理員對遠程主機進行如下操作:
- 遠程登陸
- 遠程命令執(zhí)行
- 遠程文件傳輸
遺憾的是這些操作不安全:
- 使用純文本口令机错,并用明文發(fā)送
- 信息可能會被截取,口令可能會被檢索
- 未經(jīng)授權的人員使用截取的口令登陸系統(tǒng)而對系統(tǒng)造成危害
- SSH的目標
在不安全的網(wǎng)絡上提供安全的網(wǎng)絡服務青瀑。
2.2 安裝ssh
- 安裝
- CentOS
# 檢查openssh-server萧诫、openssh-clients是否已經(jīng)安裝
rpm -qa | grep openssh-server
rpm -qa | grep openssh-clients
# 安裝
yum install -y openssh-server openssh-clients
- Ubuntu
# 檢查openssh-server帘饶、openssh-clients是否已經(jīng)安裝
dpkg -l | grep openssh-server
dpkg -l | openssh-clients
# 安裝
apt install -y openssh-server openssh-clients
- 啟動ssh
```shell
service sshd start 或 /etc/init.d/sshd start
- 配置開機啟動
chkconfig --level 2345 sshd on
3 ssh
免密登錄
通過man ssh-keygen
命令查看ssh-keygen
的使用手冊。
- 生成秘鑰
在本地主機或者跳板機上生成密鑰和公鑰:
ssh-keygen -t rsa
ssh-keygen -t rsa
生成密鑰之后,會在當前用戶的根目錄生成一個 .ssh
的文件夾缴饭。
進入.ssh
會生成以下3個文件:
- id_rsa
生成的私鑰文件 - id_rsa.pub
生成的公鑰文件 - known_hosts
已知的主機公鑰清單 - authorized_keys(Client主機上可以沒有)
存放遠程免密登錄的公鑰,主要通過這個文件記錄多臺機器的公鑰
- 將公鑰傳輸?shù)竭h程主機上
將公鑰傳輸?shù)竭h程主機上茴扁,有兩種方式:ssh-copy-id
安裝和scp
直接傳輸峭火。
-
ssh-copy-id
安裝
ssh-copy-id
是一個使用ssh去登陸到遠程服務器的腳本,可以把本地的ssh公鑰文件安裝到遠程主機對應的賬戶下纺且,具體是將你的公鑰填充到一個遠程機器上的~/.ssh/authorized_keys
文件中稍浆。
命令:ssh-copy-id -i ~/.ssh/id_rsa.pub [ip/hosts]
ssh-copy-id遠程主機安裝公鑰 scp將公鑰寫到遠程主機文件中
命令:scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
- ssh免密登錄
- ssh免密登錄
命令:ssh [ip/hosts]
ssh免密登錄 - 退出登錄
命令:exit
4 常見問題
4.1 登錄依然需要密碼嫁艇,用戶名不對
直接使用ssh {ip/hosts}
弦撩,會顯示當前系統(tǒng)的用戶名@目標主機的名稱,例如猾漫,當前用戶為user感凤,使用ssh linux1
陪竿,登錄之后顯示為user@linux1
,與linux1實際的用戶名稱不相符捐康,從而還需要輸入密碼庸蔼,不能實現(xiàn)免密登錄。假設linux1的用戶名為root花枫,此時掏膏,無論你當前的用戶名是什么馒疹,通過ssh root@linux1
即可免密登錄linux1主機。
但是這樣生均,依然很不方便,需要輸入很多的命令來登陸linux1主機汉买。
假設你的用戶名為user佩脊,已經(jīng)設置好了密鑰登錄主機linux1(linux1的用戶名為root)。那么你可以在shell的配置文件(比如.bashrc
)里定義一個命令別名alias:alias linux1='ssh root@linux1'
出牧。以后每次你啟動shell終端后崔列,輸入linux1旺遮,回車,直接就ssh登陸到主機linux1上边翼。
4.2 遠程主機已經(jīng)配置完但一直不生效
配置遠程主機linux1用戶root的公鑰登錄時鸣剪,配置完authorized_keys居然一直不生效筐骇。可能的原因之一是:
遠程主機~/.ssh及其下面文件的權限問題導致的厌均,因為目錄的權限已經(jīng)超過了sshd的要求權限告唆。如果希望ssh公鑰生效需滿足至少下面兩個條件:
- .ssh目錄的權限必須是700
- .ssh/authorized_keys文件權限必須是600
r=4
w=2
x=1
4.3 Agent admitted failure to sign using the key.
主機A登錄遠程主機linux1時擒悬,可能出現(xiàn)問題:
自動登陸會失效:“Agent admitted failure to sign using the key.”
在主機A使用 ssh-add 指令將私鑰 加進來 (根據(jù)個人的密匙命名不同更改 id_rsa):
ssh-add ~/.ssh/id_rsa
4.4 Could not open a connection to your authentication agent
如果報Could not open a connection to your authentication agent.
則執(zhí)行命令:
ssh-agent bash --login -i