開啟sshd服務,開啟雙向免密登入
1、查卡服務是否啟用,如果啟用直接跳至第5步
ps -ef | grep ssh
2、如果沒有啟用 則要安裝
yum install openssh-server
或者
yum install ssh
3、安裝完之後開啟
service sshd start 開啟ssh服務
service sshd stop 停止ssh服務
service sshd restart 重啟ssh服務
或者使用使用帶有路徑的指令碼:
/etc/init.d/sshd start
/etc/init.d/sshd stop
/etc/init.d/restart
4,設定sshd為系統自動啟動
chkconfig sshd on
5、使用ssh命令遠端登入Linux主機
格式:ssh [-l login_name] [-p port] [[email protected]]hostname
,然後輸入密碼即可實現登入
ssh 192.168.0.1
ssh -l root 192.168.0.1
ssh [email protected]192.168.0.1
ssh -p 22 192.168.0.1
ssh -l root -p 22 192.168.0.1
ssh -p 22 [email protected]192.168.0.1
6、修改配置檔案/etc/ssh/sshd_config
修改埠號
vi /etc/ssh/sshd_config
找到#Port 22
,去掉註釋,修改成一個其它埠號,比如:Port 33333
禁用root登入,依據需求設定
vi /etc/ssh/sshd_config
找到#PermitRootLogin yes
,去掉註釋,修改為:PermitRootLogin no
修改儲存後,需重啟sshd服務,命令:service sshd restart
7、修改/etc/ssh/sshd_config
,實現ssh免密登入
vi /etc/ssh/sshd_config
找到
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
修改為
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改儲存後,需重啟sshd服務,命令:service sshd restart
8、實現SSH無密碼登入,A機器192.168.194.10,B機器192.168.194.30
8.1、
在A、B機器新增hadoop使用者,以A機器為例,命令如下:
[root@192.168.194.10 ~]# adduser hadoop
[root@192.168.194.10 ~]#
為新建立的使用者設定密碼,命令如下:
[root@192.168.194.10 ~]# passwd hadoop
更改使用者 hadoop 的密碼 。
新的 密碼:
無效的密碼: 過於簡單化/系統化
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
[root@192.168.194.10 ~]#
注意:如果新增使用者時使用-p引數同步新增密碼,然後直接使用輸入的密碼是無法登入的,原因如下:
使用者的密碼都是以密文的形式儲存在/etc/shadow
檔案中的
登入的時候,輸入明文密碼,linux會將明文密碼轉換成密文密碼,去/etc/shadow
檔案對比,能比對上就可以登入
新增使用者時,-p
引數後面設定的密碼值會以輸入形式直接儲存進/etc/shadow
檔案中,比如你輸入123456,那麼/etc/shadow
檔案中儲存的也是123456,
那麼登入的時候,輸入123456,linux會把它轉換為密文,比如:$6$oLAqEGZz$qOy6EtgZnrFY3l7GcpIrVXjrhbeh/16LdDo0UoDxt5TztM8r2V7TorlkMTAJVhWPVN3Tu.J8xIfR3hop/uBlF/
,但是/etc/shadow
檔案中儲存確實123456,所以你永遠也不會登入成功
解決的辦法就是,先用adduser或者useradd命令新增使用者,不帶-p引數,然後用passwd命令更新設定密碼
同時注意:
多臺伺服器之間使用者想要實現雙向無密登入,使用的使用者需保持一致,比如都是root或者都是hadoop或者任意自定義的其它名,否則出現因許可權問題無法實現免密登入
8.2、
切換至需要無密登入的使用者,命令:su - hadoop
在A、B機器上生成公鑰和私鑰,命令及結果如下(過程一路回車):
[[email protected] ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
15:63:b8:cb:d1:7d:4b:28:15:40:66:95:26:b1:64:d0 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .=%+oo |
| .*E++ |
| oo= . |
| o.o o o |
| .So . o . |
| o . |
| |
| |
| |
+-----------------+
在這個`/home/hadoop/.ssh/`目錄下,生產了兩個公鑰和私鑰檔案:id_rsa和id_rsa.pub
[hadoop@localhost ~]$ cd /home/hadoop/.ssh/ --或者 cd ~/.ssh/
[hadoop@localhost .ssh]$ ll
總用量 8
-rw-------. 1 hadoop hadoop 1675 6月 24 22:25 id_rsa
-rw-r--r--. 1 hadoop hadoop 410 6月 24 22:25 id_rsa.pub
8.2、在A機器上匯入公鑰到認證檔案(與公鑰檔案所屬同目錄)
[[email protected] .ssh]$ cat id_rsa.pub >> authorized_keys
[[email protected] .ssh]$ ll
總用量 12
-rw-rw-r--. 1 hadoop hadoop 410 6月 24 22:33 authorized_keys
-rw-------. 1 hadoop hadoop 1675 6月 24 22:25 id_rsa
-rw-r--r--. 1 hadoop hadoop 410 6月 24 22:25 id_rsa.pub
8.3、將A機器(此時作為客戶端)的認證檔案上傳到遠端B(此時作為伺服器)機器,實現A機器遠端訪問B機器,可以無密登入到B機器,此時還是需要輸入一次密碼的:
[hadoop@192.168.194.10 .ssh]$ scp authorized_keys hadoop@192.168.194.30:/home/user/.ssh/authorized_keys
The authenticity of host '192.168.194.30 (192.168.194.30)' can't be established.
RSA key fingerprint is bd:97:17:12:79:db:b7:78:66:43:5a:d8:bc:29:b3:86.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.194.30' (RSA) to the list of known hosts.
[email protected]'s password:
authorized_keys
8.4、在B機器(遠端機器)上給複製過來的認證檔案賦予許可權
[hadoop@localhost .ssh]$ chmod 644 authorized_keys
8.5、測試,在A機器上遠端登入B機器:
[hadoop@192.168.194.10 .ssh]$ ssh hadoop@192.168.194.30
Last login: Fri Jun 30 17:36:43 2017 from 192.168.194.10
[user@192.168.194.30 ~]$
8.6、退出遠端機器B,回到客戶端機器A,命令:
[hadoop@192.168.194.30 ~]$ exit
logout
Connection to master closed.
[hadoop@192.168.194.10 .ssh]$
8.7、要實現從B機器遠端登入到A機器,重複8.2之後的步驟,所有在A機器操作的步驟換到B機器