目的:A主機想要無需輸入密碼鏈接B主機
bash
分下面三步:ssh
(1)在A本機生成公鑰與私鑰ide
cd .ssh加密
ssh-keygen -t rsa spa
此時在.ssh目錄下生成了id_rsa和id_rsa.pub。其中id_rsa是私鑰,本機要用;id_rsa.pub是公鑰orm
(2)將A公鑰上傳到遠程主機B上dns
ssh-copy-id -i id_rsa.pub root@192.168.209.130 #把公鑰信息寫到遠程主機的authorized_keys中it
(3)鏈接遠程主機Bio
ssh 192.168.209.130 (成功)class
在A主機上面.ssh目錄中,會有三個文件
ls /root/.ssh
authorized_keys id_rsa id_rsa.pub known_hosts
認證的主機 私鑰 公鑰 已經找到能夠鏈接的主機
2、詳細過程
A發送請求(+公鑰)---->B(公鑰對比,隨機生成挑戰碼)(公鑰對挑戰碼加密)---->A(用私鑰解密)(明文發送)---->B(挑戰碼對比)
3、問題
問題1:-bash: ssh: command not found
安裝軟件:
yum -y install openssh-clients
問題2:沒有.ssh目錄
先用root鏈接另外一臺主機
問題3:若是ssh的端口不是22,可用下面命令
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 23 root@192.168.209.130"
4、配置文件
修改ssh的端口號:
vi /etc/ssh/ssh_config (客戶端文件)
vi /etc/ssh/sshd_config (服務端文件)
/etc/ssh/sshd_config配置文件
PermitRootLogin yes #PermitRootLogin用來設置能不能直接以超級用戶ssh登陸,修改成no PasswordAuthentication yes #PasswordAuthentication用來設置是否開啓密碼驗證機制,若是用密碼登陸系統,則設置yesPermitEmptyPasswords no #PermitEmptyPasswords用來設置是否容許用口令爲空的帳號登陸系統,設置noUseDNS yes #UseDNS是否使用dns反向解析