1. 程式人生 > >開啟sshd服務,開啟雙向免密登入

開啟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

,可以改ssh登入埠或禁止root登入等

修改埠號

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 624 22:25 id_rsa
    -rw-r--r--. 1 hadoop hadoop  410 624 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 624 22:33 authorized_keys
    -rw-------. 1 hadoop hadoop 1675 624 22:25 id_rsa
    -rw-r--r--. 1 hadoop hadoop  410 624 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機器