linuxssh命令-九游会j9娱乐平台
a. linux下怎麼樣設置ssh無密碼登錄
1.linux下生成密鑰
ssh-keygen的命令手冊,通過」man ssh-keygen「命令:
通過命令」ssh-keygen -t rsa「
生成之後會在用戶的根目錄生成一個 「.ssh」的文件夾
進入「.ssh」會生成以下幾個文件
authorized_keys:存放遠程免密登錄的公鑰,主要通過這個文件記錄多台機器的公鑰
id_rsa : 生成的私鑰文件
id_rsa.pub :生成的公鑰文件
know_hosts : 已知的主機公鑰清單
如果希望ssh公鑰生效需滿足至少下面兩個條件:
1) .ssh目錄的許可權必須是700
2) .ssh/authorized_keys文件許可權必須是600
2.遠程免密登錄
原理圖:
常用以下幾種方法:
2.1 通過ssh--id的方式
命令: ssh--id -i ~/.ssh/id_rsa.put
舉例:
[root@test .ssh]# ssh--id -i ~/.ssh/id_rsa.pub 192.168.91.135
[email protected]'s password:
now try logging into the machine, with "ssh '192.168.91.135'", andcheck in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@test .ssh]# ssh [email protected]
last login: mon oct 10 01:25:49 2016 from 192.168.91.133
[root@localhost ~]#
常見錯誤:
[root@test ~]# ssh--id -i~/.ssh/id_rsa.pub 192.168.91.135
-bash: ssh--id: command not found //提示命令不存在
解決辦法:yum -y installopenssh-clients
2.2通過scp將內容寫到對方的文件中
命令:scp -p~/.ssh/id_rsa.pub root@
舉例:
[root@test .ssh]# scp -p ~/.ssh/[email protected]:/root/.ssh/authorized_keys
[email protected]'s password:
id_rsa.pub 100% 408 0.4kb/s 00:00
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]# ssh [email protected]
last login: mon oct 10 01:27:02 2016 from 192.168.91.133
[root@localhost ~]#
也可以分為兩步操作:
$ scp ~/.ssh/id_rsa.pubroot@
$ cat ~/pub_key>>~/.ssh/authorized_keys //將內容追加到authorized_keys文件中,不過要登錄遠程伺服器來執行這條命令
2.3 通過ansible實現批量免密
2.3.1 將需要做免密操作的機器hosts添加到/etc/ansible/hosts下:
[avoid close]
192.168.91.132
192.168.91.133
192.168.91.134
2.3.2 執行命令進行免密操作
ansible
示例:
[root@test sshpass-1.05]# ansible test -m authorized_key -a"user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k
ssh password: ----->輸入密碼
192.168.91.135 | success >> {
"changed": true,
"key": "ssh-rsa 7a3izwt3///18b6fv5moe/8ytbfa4dbqahdtvp sodbtgpc34hmgahjflsc/sjfflut/ug/== [email protected]",
"key_options": null,
"keyfile": "/root/.ssh/authorized_keys",
"manage_dir": true,
"path": null,
"state": "present",
"unique": false,
"user": "root"
}
[root@test sshpass-1.05]#
2.4 手工復制粘貼的方式
將本地id_rsa.pub文件的內容拷貝至遠程伺服器的~/.ssh/authorized_keys文件中
b. 如何通過ssh遠程登錄linux系統
1、linux系統通過ssh登錄其它的linux系統,執行如下命令即可:
命令格式:ssh username@host dis
命令說明:username是以哪個用戶身份登錄
host是要登錄的主機
dis是要進入的目錄
例:ssh [email protected]
3、注意 ,使用ssh登錄,需要linux系統開啟ssh服務。
c. 如何使用ssh登錄linux伺服器
首先進入/etc目錄下,/etc目錄存放的是一些配置文件,比如passwd等配置文件,要想使用ssh遠程登陸,需要配置/etc/ssh/sshd_config文件里的配置信息,使用vim編輯,在命令行模式下輸入vim/etc/ssh/sshd_config,進入之後,按「i」進入編輯狀態,在其文件里找到並修改為:passwordauthentication
yes,permitrootlogin
yes兩行即可,
修改之後,按「esc」退出,並按「:wq」保存並退出,或直接按「:x」直接保存退出,(注意:此處的x為小寫x,大寫x是將文件內容加密,使用時細心注意),
退出編輯模式之後,回到命令模式,輸入sevice
ssh
start/stop/restart/status,啟動/停止/重啟/狀態,選擇start啟動ssh服務。
如果上面開啟ssh服務的命令不能用,可以使用命令:sudo
service
sshd
start試試,檢查是否開啟ssh服務使用命令:ps
-e
|
grep
sshd
此時可以查看ssh狀態是否為運行狀態,運行狀態即可使用ssh遠程登陸。
使用「ifconfig」命令查詢ip地址
使用ssh登陸時,輸入主機(linux的ip地址),賬號,密碼登陸!
如果需要遠程連接ssh,需要把22埠在防火牆上開放,關閉防火牆,或者設置22埠例外/etc/init.d/iptables
stop
怎麼通過ssh登陸可參看下一篇「通過ssh實現遠程登陸伺服器!」
大致步驟為:
ssh
服務配置文件位置
/etc/ssh/sshd_config
#
修改配置
passwordauthentication
yes
permitrootlogin
yes
#
啟動ssh
服務
sevice
ssh
start/stop/status
安裝ssh:yum
install
ssh
啟動ssh:service
sshd
start
設置開機運行:chkconfig
sshd
on