⑴ linux——配置伺服器間的免密登錄
ssh-keygen 命令 用於為「ssh」生成、管理和轉換認證密鑰,它支持RSA和DSA兩種認證密鑰。SSH 密鑰默認保留在 ~/.ssh 目錄中。如果沒有 ~/.ssh 目錄,ssh-keygen命令會使用正確的許可權創建一個。
執行完命令後,會有幾個選項給你選擇,一般來說直接回車,使用默認配置即可。需要注意的是, 如果本身伺服器已經生成過ssh秘鑰了,這一步可以省略
想知道秘鑰曾經生成過,可以看步驟二。
正常來說,如果 ssh-keygen 命令執行成功,我們可以在目錄中看到吵物有 id_rsa (存放私鑰)和 id_rsa.pub (存放公鑰)兩個文件
先簡單介紹一下 ssh--id 命令
ssh--id 命令可以把本地主機的公鑰復制到遠程主機的 authorized_keys 文件上。authorized_keys 文件用來驗證 client 。使用 ssh--id 命令將本地公鑰復制到遠程主機之後可以實現免密登錄遠程輪唯主機。如果不傳入 -i 參數, ssh--id 使用默認 ~/.ssh/identity.pub 作為默認公鑰。 如果多次運行 ssh--id ,該命令不會檢查重復,會在遠程主機中多次寫入 authorized_keys 。
注意,本地升桐液 ~/.ssh/id_rsa 的許可權,chmod 400 ~/.ssh/id_rsa ,該文件包含用於授權的私鑰, 如果該文件可以被其他用戶訪問,ssh 會忽略該私鑰。
執行完上述命令後,我們後續就可以免密登錄其他伺服器了。
如果需要配置免密登錄的伺服器比較多,我們可以通過腳本來解決這些重復性的動作。
⑵ Linux免密碼SSH登錄(公鑰登錄)
SSH有兩種登錄方式, 一是口令登錄, 即常規的用戶名密碼登錄; 二是公鑰登錄, 只要在server端配置好client端的公鑰, 就可以實現免密登錄. 控制端為client端, 遠程主機為server端, 下同.
在client端輸入命令然後一路回車
運行結束以後,在client端~/.ssh/目錄下,會新生成兩個文件: id_rsa.pub 和 id_rsa 。前者是你的公鑰,後者是你的私鑰。這時再輸入如下命令,將公鑰傳送到遠程主機host上面:
server端將用戶上傳的公鑰,保存在用戶主目錄的 ~/.ssh/authorized_keys 文件中。
原本以上配置就ok了,但是OpenWrt的ssh採用的是dropbear,一種輕量級的ssh服務。需要對其進行額外配置:
大功告成 ->
SSH參考資料: SSH原理與運用(一):遠程登錄
⑶ 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 <romte_ip>
舉例:
[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@<remote_ip>:/root/.ssh/authorized_keys
舉例:
[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@<remote_ip>:pub_key //將文件拷貝至遠程伺服器
$ 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<groupname> -m authorized_key -a "user=root key='{{lookup('file','/root/.ssh/id_rsa.pub') }}'" -k
示例:
[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文件中
⑷ linux下調用寫好的sftp命令,如何讓系統自動從命令中讀取密碼並自動輸入
ssh-keygen生成公鑰/私鑰對
然後把公鑰內容復制到對方主機~/.ssh/authorized_keys文件里就可以免密碼登錄了
⑸ linux下配置遠程免密登錄方法教程
Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。本文主要描述了CentOs6.3系統下配置免密登錄的詳細過程。非常不錯,具有參考借鑒價值,需要的朋友可以參考下
方法步驟
ssh遠程登錄,兩種身份驗證:
1.用戶名+密碼
密鑰驗證
機器1生成密鑰對並將公鑰發給機器2,機器2將公鑰保存。
機器1要登錄機器2時,機器2生成隨機字元串並用機器1的公鑰加密後,發給機器1。
機器1用私鑰將其解密後發回給機器2,驗證成功後登錄
1、用戶名+密碼
如上圖所示,機器1要登錄到機器2
輸入exit回到機器1
2、遠程免密登錄
輸入命令ssh-keygen
按三次回車,完成生成私鑰和公鑰
到/root/.ssh目錄下可看到剛剛那條命令生成的私鑰和公鑰
輸入ssh--id 機器2的ip
再輸入機器2的密碼,即可將公鑰傳給機器2
機器2的/root/.ssh目錄下的authorized_keys文件保存著剛才機器1傳過來的公鑰(可用cat命令查看,並對比機器1上的公鑰,是一樣的)
機器1上直接輸入ssh 機器2的ip即可登錄機器2,不用再輸密碼,自此完成了遠程免密登錄的配置
補充:Linux基本命令
1.ls命令:
格式::ls [選項] [目錄或文件]
功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。
常用選項:
-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-d :將目錄像文件一樣顯示,而不是顯示其他文件。
-i :輸出文件的i節點的索引信息。
-k :以k位元組的形式表示文件的大小。
-l :列出文件的詳細信息。
-n :談備前用數字的UID,GID代替名稱。
-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。
2.cd命令
格式:cd [目錄名稱]
常用選項:
cd .. 返回上一級目錄。
cd ../.. 將當前目錄向上移動兩級。
cd - 返回最近訪問目錄。
含清3.pwd命令
格式: pwd
功能:顯示出當前工作目錄的絕對路徑。
相關閱讀:Linux主要特性
完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
良好的界面
Linux同時具有字元界面和圖形界面。在字滾畢符界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
支持多種平台
⑹ linux下怎樣設置ssh無密碼登錄
在CentOS/RHEL上設置SSH免密碼登錄
導讀 作為系統管理員,你計劃在 Linux 上使用 OpenSSH,完成日常工作的自動化,比如文件傳輸、備份資料庫轉儲文件到另一台伺服器等。為實現該目標,你需要從主機 A 能自動登錄到主機 B。自動登錄也就是說,要在 shell 腳本中使用ssh,而無需要輸入任何密碼。
本文會告訴你怎樣在 CentOS/RHEL 上設置 SSH 免密碼登錄。自動登錄配置好以後,你可以通過它使用 SSH (Secure Shell)和安全復制 (SCP)來移動文件。
SSH 是開源的,是用於遠程登錄的最為可靠的網路協議。系統管理員用它來執行命令,以及通過 SCP 協議在網路上向另一台電腦傳輸文件。
通過配置 SSH 免密碼登錄,你可以享受到如下的便利:
◆用腳本實現日常工作的自動化。
◆增強 Linux 伺服器的安全性。這是防範虛擬專用伺服器(VPS)遭受暴力破解攻擊的一個推薦的方法,SSH 密鑰單憑暴力破解 是幾乎不可攻破的。
什麼是 Ssh-Keygen
ssh-keygen 是一個用來生成、創建和管理 SSH 認證用的公私鑰的工具。通過 ssh-keygen 命令,用戶可以創建支持SSH1 和 SSH2 兩個協議的密鑰。ssh-keygen 為 SSH1 協議創建 RSA 密鑰,SSH2 則可以是 RSA 或 DSA。
什麼是 Ssh-Copy-Id
ssh--id 是用來將本地公鑰拷貝到遠程的 authorized_keys 文件的腳本命令,它還會將身份標識文件追加到遠程機器的 ~/.ssh/authorized_keys 文件中,並給遠程主機的用戶主目錄適當的的許可權。
SSH 密鑰
SSH 密鑰為登錄 Linux 伺服器提供了更好且安全的機制。運行 ssh-keygen 後,將會生成公私密鑰對。你可以將公鑰放置到任意伺服器,從持有私鑰的客戶端連接到伺服器的時,會用它來解鎖。兩者匹配時,系統無需密碼就能解除鎖定。
在 CentOS 和 RHEL 上設置免密碼登錄 SSH
以下步驟在 CentOS 5/6/7、RHEL 5/6/7 和 Oracle Linux 6/7 上測試通過。
節點1:192.168.0.9 節點2 : 192.168.0.10
本章目錄結構 [收起]
步驟一 :
步驟二:
步驟三:
步驟四:
步驟一 :
測試節點1到節點2的連接和訪問:
[root@node1 ~]# ssh [email protected]
The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.
RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.10' (RSA) to the list of known hosts.
[email protected]'s password:
Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1
[root@node2 ~]#
步驟二:
使用 ssh-key-gen 命令生成公鑰和私鑰,這里要注意的是可以對私鑰進行加密保護以增強安全性。
[root@node1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| . ++ |
| o o o |
| o o o . |
| . o + .. |
| S . . |
| . .. .|
| o E oo.o |
| = ooo. |
| . o.o. |
+-----------------+
步驟三:
用 ssh--id 命令將公鑰復制或上傳到遠程主機,並將身份標識文件追加到節點2的 ~/.ssh/authorized_keys 中:
[root@node1 ~]# ssh--id -i ~/.ssh/id_rsa.pub 192.168.0.10
[email protected]'s password:
Now try logging into the machine, with "ssh '192.168.0.10'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
步驟四:
驗證免密碼 SSH 登錄節點2:
[root@node1 ~]# ssh [email protected]
Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local
網路搜索《linux就該這么學》,技術干貨裡面有,也可以看下這本書!