導航:首頁 > 操作系統 > linuxssh自動登錄

linuxssh自動登錄

發布時間:2022-12-30 06:46:59

A. linux下怎樣設置ssh無密碼登錄

用SSL加密Key實現自動登錄
需要材料:
1 被管理的SSH伺服器一台。
2 管理端電腦一台。

環境:
管理伺服器: ip:192.168.0.1 機器名:server
被管理伺服器:ip:192.168.0.2 機器名:client

生成密鑰對:
生成公鑰密鑰對是在管理伺服器上生成的:

[root@server ~]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair. #提示正在生成rsa密鑰對
Enter file in which to save the key (/home/usrname/.ssh/id_dsa): #詢問公鑰和私鑰存放的位置,回車用默認位置即可
Enter passphrase (empty for no passphrase): #詢問輸入私鑰密語,輸入密語
Enter same passphrase again: #再次提示輸入密語確認
Your identification has been saved in /home/usrname/.ssh/id_dsa. #提示公鑰和私鑰已經存放在/root/.ssh/目錄下
Your public key has been saved in /home/usrname/.ssh/id_dsa.pub.
The key fingerprint is:
x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 root@server #提示key的指紋

拷貝你的公鑰到被管理的伺服器上
在你的管理伺服器上把你的公鑰拷貝到被管理伺服器上要進行自動登陸的用戶目錄下。

[root@server ~]# scp .ssh/id_dsa.pub [email protected]: #比如你想使用用戶peter登陸,則remote_usrname請以peter代替

改名和進行許可權設置
登陸被管理的伺服器,進入需要遠程登陸的用戶目錄,把公鑰放到用戶目錄的 .ssh 這個目錄下(如果目錄不存在,需要創建~/.ssh目錄,並把目錄許可權設置為700),把公鑰改名為authorized_keys2,並且把它的用戶許可權設成600。

[peter@client ~]$ ls
id_rsa.pub
[peter@client ~]$ mkdir ~/.ssh #如果當前用戶目錄下沒有 .ssh 目錄,請先創建目錄
[peter@client ~]$ chmod 700 ~/.ssh
[peter@client ~]$ mv id_rsa.pub ~/.ssh
[peter@client ~]$ cd ~/.ssh
[peter@client ~]$ cat id_rsa.pub >> authorized_keys2
[peter@client ~]$ rm -f id_rsa.pub
[peter@client ~]$ chmod 600 authorized_keys2
[peter@client ~]$ ls -l
total 4
-rw------- 1 peter peter 225 Oct 10 11:28 authorized_keys2

測試使用密鑰對進行遠程登陸

[root@server ~]# ssh [email protected]
Enter passphrase for key '/root/.ssh/id_rsa': #提示輸入密碼短語,請輸入剛才設置的密碼短語
Last login: Sun Oct 10 11:32:14 2010 from 192.168.0.1
[peter@client ~]$

如果你不能用正確的登錄,應該重新檢查一下你的authorized_keys2的許可權。也可能要檢查.ssh目錄的許可權。
使用 ssh-agent(ssh代理)自動輸入密碼短語
牢記你的「密碼短句」,現在你可以用你的密鑰而不是密碼來登錄你的伺服器了,但是這樣仍然沒有省什麼事,你還是要輸入密鑰的「密碼短語」。有更簡便的方法嗎?答案就是採用SSH代理(ssh-agent),一個用來幫你記住「密碼短語」的程序。 ssh-agent是OpenSSH中默認包括的ssh代理程序。
登陸管理伺服器

[root@server ~]# ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2148; export SSH_AGENT_PID;
echo Agent pid 2148;

當你運行ssh-agent,它會列印出來它使用的 ssh 的環境和變數。要使用這些變數,有兩種方法,一種是手動進行聲明環境變數,另一種是運行eval命令自動聲明環境變數。
方法一:手動聲明環境變數

[root@server ~]# SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;
[root@server ~]# SSH_AGENT_PID=2148; export SSH_AGENT_PID;
[root@server ~]# printenv | grep SSH #檢查 ssh 環境變數是否已經加入當前會話的環境變數
SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147

方法二:運行eval命令自動聲明環境變數

[root@server ~]# eval `ssh-agent`
Agent pid 2157
[root@server ~]# printenv | grep SSH #檢查 ssh 環境變數是否已經加入當前會話的環境變數
SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147

現在 ssh-agent 已經在運行了,但是 ssh-agent 裡面是空白的不會有解密的專用密鑰。我們要告訴它我們有私鑰和這個私鑰在哪兒。這就需要使用 ssh-add 命令把我們的專用密鑰添加到 ssh-agent 的高速緩存中。

[root@server ~]# ssh-add ~/.ssh/id_dsa
Enter passphrase for /home/user/.ssh/id_dsa: #輸入你的密碼短語
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
[root@server ~]# ssh-add -l #查看 ssh代理的緩存內容
1024 72:78:5e:6b:16:fd:f2:8c:81:b1:18:e6:9f:77:6e:be /root/.ssh/id_rsa (RSA)

輸入了密碼短句,現在好了,你可以登錄你的遠程伺服器而不用輸入你的密碼短語了,而且你的私鑰是密碼保護的。

B. linux怎麼寫腳本讓自動登錄SSH或者telnet

看你登陸ssh干什麼,如果只是執行簡單的命令
ssh -t user@site 『命令』
不過要配公鑰。
無法配公鑰的話,就只能用expect了
不過這個有點麻煩

C. linux下怎麼使SSH服務開機自動運行

1、啟動Linux並登錄到系統。

D. shell實現SSH自動登陸

[TOC]

註:需要執行許可權,可通過 sudo chmod +x ./file_name.sh 添加

sh file_name.sh 就是指定了腳本解釋器 /bin/sh 來解釋執行腳本;常見的腳本解釋器還有: /bin/bash 等,我們可以使用 ls -l /bin/*sh 命令來查看當前可用的腳本解釋器;

這種方式不會像前兩種方式一樣fork一個子進程去執行腳本,而是使用當前shell環境執行。我們不必重啟shell或者重新登錄系統,就能使當前的更改生效。一般用於 .bashrc或者.bash_profile被修改的時候,

定義:我們寫一個shell腳本時,總是習慣在最前面加上一行 #!/binbash ,它就是腳本的 shebang 。

作用:它指示了此腳本運行時的解釋器,使用文件名直接執行shell腳本時,必須帶上shebang。

使用:可以在shebang後面直接附加選項,執行時我們默認使用選項執行;

如 test.sh 的 shebang 為 #!/bin/sh -x ,那我們執行腳本時:

./test.sh hello 相當於: bin/sh -x ./test.sh hello ;

注意:在指定腳本解釋器來執行腳本時,shebang會被指定的腳本解釋器覆蓋。

expect是一個能實現自動和互動式任務的解釋器,它也能解釋常見的shell語法命令,其特色在以下幾個命令:

spawn command 命令會fork一個子進程去執行command命令,然後在此子進程中執行後面的命令;

它的一般用法為 expect "string" ,即期望獲取到string字元串,可在在string字元串里使用 * 等通配符; string 與命令行返回的信息匹配後,expect會立刻向下執行腳本;

set timeout n 命令將expect命令的等待超時時間設置為n秒,在n秒內還沒有獲取到其期待的命令,expect 為false,腳本會繼續向下執行;

一般用法為 send "string\r" , 向命令行輸入一條信息, \r 表示輸入回車;

創建腳本 touch aliyun_login_shell.sh ,內容如下:

執行 sudo chmod +x ./aliyun_login_shell.sh 命令給shell腳本添加執行許可權;

運行 ./aliyun_login_shell.sh 命令,一鍵登陸成功!

優化一下:

腳本完成了,可是還是有些小瑕疵:

這里我們想到了linux的alias命令:

執行命令 vim ~./bash_profile ,在文件內部添加:

再使用 . ~./bash_profile 或 source ~./bash_profile

從此,我們無論在哪個目錄,只要輸入 alias_name 命令,回車,真正的一鍵登陸!

參考:

https://www.cnblogs.com/qiumingcheng/p/11544569.html

E. linux下怎樣設置ssh無密碼登錄

1.在你的自己的機器下面使用ssh-keygen命令來實現創建公鑰
使用 ssh-keygen -t rsa 來創建密鑰,程序會問你存放的目錄,如果不需要修改,直接回車兩次即可
2.將你~/.ssh目錄中的id_rsa.pub這個文件拷貝到你要登錄的伺服器的~/.ssh目錄中,然後再運行以下命令來將公鑰導入到~/.ssh/authorized_keys這個文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,注意是管道符是 >>
另外要注意請務必要將伺服器上
~/.ssh許可權設置為700
~/.ssh/authorized_keys的許可權設置為600
這是linux的安全要求,如果許可權不對,自動登錄將不會生效
完畢之後,退出伺服器的登錄,再使用ssh登錄,你就會發現伺服器不會再向你詢問密碼了.

F. 如何通過ssh遠程登錄linux系統

1、linux系統通過ssh登錄其它的linux系統,執行如下命令即可:

命令格式:ssh username@host dis
命令說明:username是以哪個用戶身份登錄
host是要登錄的主機
dis是要進入的目錄
例:ssh [email protected]

3、注意 ,使用ssh登錄,需要linux系統開啟ssh服務。

G. 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就該這么學》,技術干貨裡面有,也可以看下這本書!

H. 如何通過linux ssh遠程linux不用輸入密碼登入

Linux ssh密鑰自動登錄
在開發中,經常需要從一台主機ssh登陸到另一台主機去,每次都需要輸一次login/Password,很繁瑣。

實現從主機A免密碼登陸到主機B,需要以下幾個步驟:
1. 在主機A「~/.ssh/」目錄下執行命令「ssh-keygen -t rsa」(生成過程中,一路回車),生成兩個文件id_rsa和id_rsa_pub,這兩個文件實際上是一個密鑰對,id_rsa是私鑰,id_rsa_pub是公鑰;
2. 將文件id_rsa_pub從主機A拷貝(可以使用scp命令)到主機B「~/.ssh/」目錄下;
3. 登陸到主機B上, 進入「~/.ssh/」目錄,將從主機拷貝來的id_rsa_pub文件添加到文件「authorized_keys」尾部(cat id_rsa_pub>>authorized_keys),若文件「authorized_keys」不存在,則創建;確保「~/.ssh/authorized_keys」的許可權至少為600;
4. 從主機A登陸主機B,第一次登陸時主機B要自動設置known_hosts文件,所以需要輸入yes,以後就不需要了;
P.S.當然你登陸主機A和主機B用的是同一個用戶名

錦上添花:
假設你的用戶名為user,已經設置好了密鑰登陸主機B。那麼你可以在shell的配置文件(比如.bashrc)里定義一個alias
alias b='ssh user@B'
以後每次你啟動shell終端後,輸入b,回車,直接就ssh登陸到主機B上。

I. 【Linux】SSH 使用密碼/公鑰遠程登錄總結

本文是筆者查閱網上資料做的總結,關於SSH原理,什麼是對稱加密和非對稱加密,本文不過多介紹。這里介紹一下SHH的工作過程、配製方法,可能出現的問題及解決方法。
說明:本文中涉及的例子,SSH客戶端為:本地主機A,SSH伺服器為:伺服器B

SSH協議採用C-S(客戶端-伺服器端)架構進行雙方的身份驗證以及數據的加密。
伺服器端組件監聽指定的埠,負責安全連接的建立、對連接方的身份認證、以及為通過身份認證的用戶建立正確的環境。
客戶端負責發起最初的TCP握手、安全連接的建立、驗證伺服器的身份與之前記錄中的一致、並將自己的驗證信息提供給伺服器。
一個SSH會話的建立過程分為兩個階段。第一階段,雙方溝通並同意建立一個加密連接通道以供後續信息傳輸用。第二階段,對請求接入的用戶進行身份驗證以確定伺服器端是否要給該用戶開放訪問許可權。

當客戶端發起TCP連接時,伺服器端返回信息說明自己支持的協議版本,如果客戶端上支持的協議與之匹配,則連接繼續。伺服器會提供自己的公共主機密鑰(public host key)以讓客戶端確認自己訪問的是正確的機器。

然後,雙方採用一種Diffie-Hellman演算法共同為該會話建立密鑰。每一方的一部分私有數據,加上來自對方的一部分公共數據,通過這種演算法計算,能夠得出完全相同的密鑰用於本次會話。

整個會話的通訊內容都使用該密鑰進行加密。這個階段使用的公鑰/私鑰對與用戶驗證身份用的SSH密鑰是完全無關的。

經典Diffie-Hellman演算法的計算步驟如下:

這個共享密鑰的加密方式被稱為二進制數據包協議(binary packet protocol)。該過程能夠讓雙方平等的參與密鑰生成的過程,而不是由單方掌握。這種共享密鑰生成的過程是安全的,雙方沒有交換過任何未經加密的信息。

生成的密鑰是對稱式密鑰,一方用於加密信息的密鑰等同於另一方用於解密信息的密鑰,而任何第三方由於不持有該密鑰,是無法解密雙方傳遞的內容的。

會話加密通道建立後,SSH開始進入用戶認證階段。

下一步,伺服器驗證用戶身份以決定是否准許其訪問。驗證有不同的方式,選擇的驗證方式取決於伺服器的支持。

最簡單的驗證是密碼驗證:伺服器要求客戶端輸入密碼,客戶端輸入的密碼經過上述的通道加密傳輸給伺服器。

雖然密碼是加密過的,然而該方法仍然不被推薦,因為用戶經常為了省事而使用過於簡單的密碼,而這類密碼很容易就能夠被自動化腳本破解。

最流行的驗證方式是SSH密鑰對,這也是當前最推薦的方式。SSH密鑰對是非對稱密鑰,私鑰和公鑰分別用於不同的功能。

公鑰用於加密,而私鑰用於解密。公鑰可以隨意上傳、共享,因為公鑰的流通並不會危及到私鑰的保密性。

SSH密鑰對的驗證過程起始於上一部分加密通道建立之後,其具體執行步驟如下:

簡單來說,伺服器端用公鑰加密信息,客戶端用私鑰解密信息以證明自己持有私鑰。該過程同時使用了對稱加密和非對稱加密,兩種方式各有自己的功用。

命令如下:

用戶名:為要登錄的伺服器B中已存在的用戶賬戶名
IP地址:為伺服器B的IP地址
-p 埠號:用來指定埠號,默認為22

第一次登錄時,會提示如下提示:

大概意思是說,你正在訪問的主機不能驗證它的真實性,它的RSA key(當前訪問主機的公鑰)指紋是怎樣的,你確定要繼續連接嗎?
輸入yes繼續,會提示,已永久把當前訪問主機的RSA key添加到了已知主機文件(用戶目錄下,.ssh 文件夾中的knwon_hosts文件)中。之後再次 SSH 登錄就不再有該提示了。
接著,輸入登錄賬戶的密碼即可。

SSH 密碼登錄,需要伺服器開啟密碼驗證許可權,編輯伺服器SSH配置命令如下:

在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,將前面的#號去掉,保存退出。

公鑰登錄,即免密碼登錄。避免的每次登錄都要輸入的麻煩,也防止了中間人攻擊。是SSH遠程登錄最常用的登錄方式。

提示輸入密鑰對名稱,直接回車,使用默認名稱即可;
提示輸入密碼(使用私鑰時,要輸入密碼),直接回車,不使用密碼即可。

首先,登錄伺服器B,在進行下面的操作。

找到 #PubkeyAuthentication yes,刪除 #號,保存退出。

重啟 ssh 服務

也可指定驗證私鑰:

本地主機A,生成密鑰對後:

sudo vim /etc/selinux/config

J. Linux 下設置SSH key登錄

設置ssh key 登錄有兩個好處:

具體配置步驟如下:

注意,輸入ssh-keygen後,會有提示,默認回車就行,最後生成秘鑰:id_rsa和公鑰id_rsa.pub

​4. 將私鑰拷貝出來,然後刪除這兩個文件

​5. 配置xshell使用秘鑰文件登錄,如下圖:

閱讀全文

與linuxssh自動登錄相關的資料

熱點內容
蘋果平板如何開啟隱私單個app 瀏覽:700
空調壓縮機一開就停止 瀏覽:526
如何下載虎牙app 瀏覽:847
日語年號的演算法 瀏覽:955
dev裡面的編譯日誌咋調出來 瀏覽:298
php函數引用返回 瀏覽:816
文件夾和文件夾的創建 瀏覽:259
香港加密貨幣牌照 瀏覽:838
程序員鼓勵自己的代碼 瀏覽:393
計算機網路原理pdf 瀏覽:752
吃雞國際體驗服為什麼伺服器繁忙 瀏覽:94
php中sleep 瀏覽:490
vr怎麼看視頻演算法 瀏覽:86
手機app如何申報個人所得稅零申報 瀏覽:694
如何截獲手機app連接的ip 瀏覽:331
冰箱壓縮機是否需要電容 瀏覽:346
python列表每一行數據求和 瀏覽:274
自己有一台伺服器可以玩什麼 瀏覽:657
社會學波普諾pdf 瀏覽:584
解壓做食物的小視頻 瀏覽:758