當前位置:首頁 » 操作系統 » ssh代理linux

ssh代理linux

發布時間: 2022-08-30 14:58:06

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)

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

Ⅱ 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文件中

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

通過ssh遠程登錄linux系統的方法: 1、在需要遠程訪問的計算機的「新立得」裡面安裝openssh-server。這台計算機是遠程計算機,你當前使用的計算機是本地計算機。如果使用Ubuntu或者其他Linux版本,已經安裝了連接到遠程計算機的軟體。 2、遠程計算...

Ⅳ Windows和Linux 主機怎麼設置SSH代理

一般來說,代理伺服器需要在虛擬主機上運行一個代理服務程序,如tproxy等。 因為虛擬主機通常只能運行web程序,你看看你的虛擬主機支持哪種語言,如linux的支持PHP/Python等,WIndows的支持ASP, ASP.net等。然後你去網路或者Google搜索 「語言 代理伺服器」 ,如 「PHP 代理伺服器」, 將程序下載下來安裝到你的虛擬主機上就可以了。如果你的虛擬主機支持PHP,你可以看看 Phpsocks5,網址:
一般的虛擬主機不支持 SSH/VPN做代理,如果要支持這些你必須買 VPS 。一般的虛擬主機的apache2你不能控制他的配置文件,所以你也不能將其配置成代理伺服器。

Ⅳ 用linux做ssh代理伺服器的配置

你好。ssh -qTfnN -D 7070 [email protected]就行。
不是必須要用7070埠,可以使用1024以上的任意埠。不過使用之前你要先看看埠是否已經被佔用了。
然後你在瀏覽器中設置代理的時候,用上面命令中 -D後面的埠號即可。

Ⅵ 兩台Linux伺服器,ssh代理上網配置

A伺服器配置兩塊網卡,其中一塊網卡配置接入外網,一塊網卡配置接入內網,而B伺服器就接入在與A在同一網路的內網上,在A伺服器上通過squid配置透明代理就可以,同時做iptables數據轉發處理,B伺服器的網關需要配置為伺服器A的內網口IP地址,這些都可以通過命令行完成。

熱點內容
怎麼查看泰拉伺服器ip 發布:2025-05-14 23:03:29 瀏覽:72
c語言學生成績查詢系統 發布:2025-05-14 22:58:30 瀏覽:4
怎麼進別人的伺服器 發布:2025-05-14 22:45:55 瀏覽:772
用編程寫音樂 發布:2025-05-14 22:45:08 瀏覽:782
如何識別電腦的網路配置 發布:2025-05-14 22:38:46 瀏覽:847
pipforpython3 發布:2025-05-14 22:38:34 瀏覽:350
如何把迷你世界的伺服器搞崩 發布:2025-05-14 22:37:15 瀏覽:94
如何讓安卓卡死機 發布:2025-05-14 22:36:27 瀏覽:634
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:804
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:97