linux 常用命令(三)ssh
linux 常用命令(三)ssh
(1) 安裝並配置 SSH 無密碼登陸
CentOS 默認已安裝了 SSH client、SSH server,打開終端執行如下命令進行檢驗
rpm -qa | grep ssh
如果返回的結果如下圖所示,包含了 SSH client 跟 SSH server,則不需要再安裝
若需要安裝,則可以通過 yum 進行安裝:
yum -y install openssh-clients openssh-server
接著執行如下命令測試一下 SSH 是否可用:
ssh localhost
此時會有如下提示(SSH 首次登陸提示),輸入 yes 。然後按提示輸入密碼,這樣就登陸到本機了。
[root@master home]# ssh localhost The authenticity of host ‘localhost (::1)‘ can‘t be established. ECDSA key fingerprint is bd:66:a8:94:98:d5:0b:f3:bc:e9:5c:41:4c:ca:b3:d4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘localhost‘ (ECDSA) to the list of known hosts. root@localhost‘s password: Last login: Fri Apr 20 07:07:31 2018 from 192.168.2.1
但這樣登陸是需要每次輸入密碼的,我們需要配置成 SSH 無密碼登陸比較方便。
首先輸入 exit 退出剛才的 ssh,就回到了我們原先的終端窗口,然後利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中:
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost rm ./id_rsa* # 刪除之前生成的公匙(如果有) ssh-keygen -t rsa # 會有提示,都按回車就可以 cat id_rsa.pub >> authorized_keys # 加入授權 chmod 600 ./authorized_keys # 修改文件權限,否則無法登陸,親測
註意: 一定要 chmod 來一下,不然無法起作用。此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了。
scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/
scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,類似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 slave1 上 hadoop 用戶的密碼(hadoop)。
sudo vim /etc/ssh/sshd_config
RSAAuthentication yes # 啟用 RSA 認證
PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式
ssh -vvv 192.168.2.101
/var/log/secure日誌看到是權限問題:Dec 21 14:54:55 SHLT-TB-ORACLEBAK sshd[12347]: Authentication refused: bad ownership or modes for directory /home/oracle (tailf /var/log/secure)
sshd為了安全,對屬主的目錄和文件權限有所要求。如果權限不對,則ssh的免密碼登陸不生效。
用戶目錄權限為 755
rsa_id.pub 及authorized_keys權限一般為644
rsa_id權限必須為600。
每天用心記錄一點點。內容也許不重要,但習慣很重要!
linux 常用命令(三)ssh