在Linux中使用SFTP進行公鑰認證可以提供更安全的連接方式,避免每次連接時輸入密碼。以下是設置和使用公鑰認證的步驟:
生成密鑰對: 打開終端并運行以下命令來生成SSH密鑰對(如果你還沒有的話):
ssh-keygen -t rsa -b 4096
這將生成一個RSA密鑰對,默認情況下會保存在~/.ssh/id_rsa
(私鑰)和~/.ssh/id_rsa.pub
(公鑰)。
設置密碼(可選): 在生成密鑰對的過程中,你可以選擇為私鑰設置一個密碼,以增加安全性。
復制公鑰:
使用ssh-copy-id
命令將公鑰復制到遠程服務器的~/.ssh/authorized_keys
文件中:
ssh-copy-id user@remote_host
其中,user
是遠程服務器上的用戶名,remote_host
是遠程服務器的地址。
如果ssh-copy-id
命令不可用,你可以手動復制公鑰:
cat ~/.ssh/id_rsa.pub | ssh user@remote_host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
~/.ssh/config
文件,并添加以下內容以配置特定主機的連接:Host remote_host
HostName remote_host
User user
IdentityFile ~/.ssh/id_rsa
這樣,當你連接到remote_host
時,SSH客戶端會自動使用指定的私鑰進行認證。啟動SFTP會話: 使用以下命令啟動SFTP會話:
sftp user@remote_host
如果你已經配置了SSH配置文件,可以直接使用主機名:
sftp remote_host
進行文件傳輸: 在SFTP會話中,你可以使用以下命令進行文件傳輸:
put local_file remote_file
:上傳本地文件到遠程服務器。get remote_file local_file
:從遠程服務器下載文件到本地。ls
:列出遠程目錄的內容。cd directory
:更改遠程目錄。exit
:退出SFTP會話。通過以上步驟,你就可以在Linux中使用SFTP進行公鑰認證了。這種方式不僅安全,而且方便快捷。