日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux-SFTP/SSH免密码登录

發布時間:2025/3/21 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux-SFTP/SSH免密码登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Public Key認證的主要魅力在于認證時承諾不必提供密碼就能夠同遠程系統建立連接。

Public Key認證的基礎在于一對密鑰,public key和private key,public key對數據進行加密而且只能用于加密,private key 只能對所匹配的public key加密過的數據進行解密。

我們把public key放在遠程系統合適的位置,然后從本地開始進行ssh連接。

此時,遠程的sshd會產生一個隨機數并用我們產生的public key進行加密后發給本地,本地會用private key進行解密并把這個隨機數發回給遠程系統。

最后,遠程系統的sshd會得出結論我們擁有匹配的private key允許我們登錄。

SFTP免密碼登錄操作方法

1) 登陸服務端主機,在當前用戶根目錄執行(以RSA算法為例)

如下命令:

ssh-keygen –t rsa

屏幕顯示內容均可直接以回車使用默認項,此時在$home/.ssh目錄下生成I d_rsa私鑰(private key)及id_rsa.pub公鑰(public key)兩個文件。

2) 將服務端的$home/.ssh/id_rsa.pub文件上傳到客戶端機的$home/.ssh目錄下

通過scp命令傳到 客戶端

scp $home/.ssh/id_rsa.pub username@client_ip:$home/.ssh

在客戶端機$home/.ssh目錄下執行命令:

cat id_rsa.pub >> authorized_keys

3)將客戶端各主機信息添加到$home/.ssh/known_hosts文件中

例如:
服務端IP是10.45.7.154
客戶端為:10.45.7.61

在服務端執行 sftp usename@10.45.7.61命令提示如下:

qdgcp@mdw:~/.ssh> sftp qmdb@10.45.7.61 Connecting to 10.45.7.61... The authenticity of host '10.45.7.61 (10.45.7.61)' can't be established. RSA key fingerprint is ea:53:c8:cf:24:31:18:d8:47:68:8d:18:65:a4:e8:20. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.45.7.61' (RSA) to the list of known hosts.

這樣,在服務端的$home/.ssh/目錄會出現一個known_hosts文件,客戶端主機信息將添加到這個文件中。

按上述方法實現服務端主機和客戶端主機間的公私鑰配對后,從服務端主機向客戶端主機就可以實現同一用戶名的sftp自動安全登陸操作了。


注意:
如果我在服務端使用root用戶登錄,并且執行了

sftp oracle@10.45.7.61 或者ssh oracle@10.45.7.61

這個時候 在A上執行 ssh oracle@10.45.7.61是可以自動登錄的,
但是如果 僅僅 ssh 10.45.7.61 ,這個時候linux會自動獲取當前登錄用戶,并賦予到 這個命令上,此時會變成 當前用戶@10.45.7.61 ,但由于我們在root用戶下執行的免密碼登錄,這個時候變成了oracle用戶,雖然也是 ssh oracle@10.45.7.61,但是用戶變了,所以同樣的也不能自動登錄。 如下圖所示

退出ssh的話 輸入 logout即可 ,如果退出sftp ,輸入exit命令即可。

說明:

在配置ssh自動傳輸的時候注意,

  • .ssh目錄的屬主、屬組使用當前用戶與用戶組,
  • .ssh目錄的權限請保持700,
  • authorized_keys的權限為644,
  • id_rsa的權限為600,
  • id_rsa.pub的權限為644,
  • 同時檢查用戶$HOME目錄權限必須為755。

確認權限 。
r 4 w 2 x 1
chmod 644 dir 通過chmod 賦權限。

實操

以下操作的是同一臺主機, 一般都用于兩臺主機之間。

[root@entel2 ~]# cd $HOME [root@entel2 ~]# ssh-keygen -t rsa 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: 79:e6:c1:13:7d:05:39:8a:c8:e8:84:9f:8e:c6:0e:0f root@entel2 The key's randomart image is: +--[ RSA 2048]----+ | .o.| | . o. | | . o ....... | | . o oo.... | | + .S * | | + + o | | E. o . | | ++ . | | oo | +-----------------+ [root@entel2 ~]# cd .ssh/ [root@entel2 .ssh]# ll total 24 -rw------- 1 root root 1671 Nov 3 14:05 id_rsa -rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub[root@entel2 .ssh]# cat id_rsa.pub >>authorized_keys[root@entel2 .ssh]# ll total 28 -rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys -rw------- 1 root root 1671 Nov 3 14:05 id_rsa -rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub[root@entel2 .ssh]# sftp root@10.45.7.198 Connecting to 10.45.7.198... The authenticity of host '10.45.7.198 (10.45.7.198)' can't be established. RSA key fingerprint is 5f:b5:f8:02:5a:b0:ad:6b:10:ce:6a:cc:53:55:68:c7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.45.7.198' (RSA) to the list of known hosts. sftp> exit查看目錄 出現了 known_hosts [root@entel2 .ssh]# ll total 32 -rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys -rw------- 1 root root 1671 Nov 3 14:05 id_rsa -rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub -rw-r--r-- 1 root root 393 Nov 3 14:09 known_hosts[root@entel2 .ssh]# cat known_hosts 10.45.7.198 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1WCBN8XDrGX2Ersub6U8CDtY2a0Ug5YT9fvqTcJm+DCQVj/DZVyvc5ODBC03iDp54ugSOToFluo1RabJjrTEZGMWjYKCZzEXRYO3sq4waGIP1D27bYLs9GW23VZUP0qwpmPKuJs8Asx7S1m9knoQO+wIeyQQt0gkw3TKM4QJSPAsfqSl0XuSTOczS9kbNTGOCpYoB7kThsE8Q87OqRLfjR2ePN3bDTL6RKX8iDm2PelQ2g+oAQCCmWlUF11TYwBahN0bKY7rNPsEQWlYpk0QGdNVTwMGy1j2DrlzoLSyuLfMu5+NgPVgx9MKmLfQlPVdFQyb/n5NShGxG+VAPA+6CQ==[root@entel2 .ssh]# ssh root@10.45.7.198 Last login: Thu Nov 3 14:06:17 2016 from 10.45.22.168[root@entel2 ~]# sftp root@10.45.7.198 Connecting to 10.45.7.198... sftp>

ssh特別慢故障

背景:

我們的應用中的QDG上傳文件特別慢,文件目錄很小,但是傳了5個小時才傳完,發現命令執行sftp/ssh 本機,也是非常的卡。 問題有可能出現在這里。


過程:

用 ssh -v 目標IP 來查看詳細的連接建立過程


解決:

使用root用戶調整 /etc/ssh/ssh_config 修改 GSSAPIAuthentication yes 改為no


使用以下命令查看看ssh 連接時間

time ssh xgj@172.25.146.14 exit

修改配置后,重新啟動QDG,秒傳,問題得到解決。


常見解決方法:

1、在ssh服務端上更改/etc/ssh/sshd_config文件中的配置為如下內容:

UseDNS no # GSSAPI options GSSAPIAuthentication no

然后,執行/etc/init.d/sshd restart重啟sshd進程使上述配置生效,在連接一般就不慢了。

2、如果還慢的話,檢查ssh服務端上/etc/hosts文件中,127.0.0.1對應的主機名是否和 uname -n的結果一樣,或者把本機ip和hostname(uname -n結果)加入到/etc/hosts里。

[xgj@entel2 ~]$ uname -n entel2 [xgj@entel2 ~]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.45.7.198 entel2 [xgj@entel2 ~]$
  • 利用ssh -v的調試功能查找慢的原因
    其實可以用下面的命令調試為什么慢的細節(學習這個思路很重要)。
  • 總結

    以上是生活随笔為你收集整理的Linux-SFTP/SSH免密码登录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。