SFTP配置公鑰至受信任列表,提供外部訪問

需求:搭建SFTP,提供外部系統訪問,基於公鑰配置到受信任列表實現無密碼登錄.

環境規劃

  • 服務端擬訂創建sftp和用戶組
  • 用戶1 sftp用戶 user1 密碼user1 客戶端公鑰文件 client_public_key1
  • 用戶2 sftp用戶 user2 密碼user2 客戶端公鑰文件 client_public_key2

客戶端生成公鑰

  • 客戶端需要生成密鑰對,分發公鑰,進入系統家目錄:
首先需要在家目錄創建.ssh文件夾

查看隱藏目錄,默認此目錄裏如果沒有.ssh隱藏目錄,則需要手動創建

ll –a   --> 查看隱藏目錄     

新建.ssh文件夾

mkdir .ssh 

進入.ssh目錄

cd .ssh             

執行創建密鑰對命令

ssh-keygen -t rsa   

================================================================
提示信息如下:

Generating public/private rsa key pair.

Please be patient....   Key generation may take a few minutes

Enter file in which to save the key (/home/ap/appnms/.ssh/id_rsa):

# 按回車保存爲: //.ssh/id_rsa,即當前用戶的私鑰

Enter passphrase (empty for no passphrase):

# 按回車,表示讀取密鑰時不需要密鑰的密碼

Enter same passphrase again:

# 確認密鑰的密碼,必須和上面的輸入相同

Your identification has been saved in /home/ap/appnms/.ssh/id_rsa.

# 私鑰保存信息

Your public key has been saved in /home/ap/appnms/.ssh/id_rsa.pub.

服務端

# 創建sftp用戶組
groupadd sftp  

# user1
# 新建用戶user1
useradd -s /sbin/nologin -g sftp user1   
# 爲user1設置密碼
passwd user1     
# 爲user1創建自己上傳目錄
mkdir -p /data/sftp/user1/upload
# 爲上傳目錄授權
chown user1:sftp /data/sftp/user1/upload

# 在user1家目錄下創建.ssh文件夾
mkdir -p /home/user1/.ssh
# 將客戶端公鑰內容拷貝至.ssh文件夾下的authorized_keys文件中
cat client_public_key1 > /home/user1/.ssh/authorized_keys
chown -R user1:sftp  /home/user1/.ssh/
chmod 644 /home/user1/.ssh/authorized_keys
chmod 755 /home/user1/.ssh/

# user2
useradd -s /sbin/nologin -g sftp user2
passwd user2 
mkdir -p /data/sftp/user2/upload
chown user2:sftp /data/sftp/user2/upload

mkdir -p /home/user2/.ssh
cat client_public_key2 > /home/user2/.ssh/authorized_keys
chown -R user2:sftp  /home/user2/.ssh/
chmod 644 /home/user2/.ssh/authorized_keys
chmod 755 /home/user2/.ssh/

sftp服務

  • 編輯文件 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config

註釋掉如下行:

#  Subsystem      sftp    /usr/libexec/openssh/sftp-server

查看文件末尾是否有: Subsystem      sftp    internal-sftp   沒有一定補上去
  • 末尾新增
Match User user1
ChrootDirectory /data/sftp/user1
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

Match User user2
ChrootDirectory /data/sftp/user2
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no
  • 重啓服務
service sshd restart 
  • 注意
需要關閉SELINUX,vi /etc/selinux/config,SELINUX=disabled

測試

服務端數據準備

# touch somefile /data/sftp/user1/dirdir1
# echo "abc" > /data/sftp/user1/upload/abc.txt
# touch somefile /data/sftp/user2/dirdir2
# echo "abc" > /data/sftp/user2/upload/abc.txt

客戶端訪問

echo "client" > client.txt
sftp user1@ip #應不需輸入密碼
pwd #應顯示根目錄/
ls ##應顯示 upload dirdir1

cd upload
put client.txt #應可以正產上送
cd ../dirdir1
put client.txt #應提示無權限

sftp 上傳下載命令示例(方便測試)

sftp> get /usr/local/index.php  /home/fuyatao/
將從遠程主機的  /usr/local/目錄下將 index.php 下載到本地  /home/fuyatao/目錄下

sftp> put /usr/local/Linuxgl.pdf /var/www/fuyatao/
把本地 /usr/local/目錄下的 linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/ 目錄下

快速構建

===============================================================================
用戶: wf01

快速構建:

--  第一部分: 用戶名 密碼設置
useradd -s /sbin/nologin -g sftp wf01
passwd  wf01


-- 第二部分: 配置目錄,並給用戶授權
mkdir -p /data/sftp/wf01/upload
mkdir -p /data/sftp/wf01/download

chown wf01:sftp /data/sftp/wf01/upload

-- 第三部分: 公鑰配置,操作權限配置
mkdir -p /home/wf01/.ssh

#配置公鑰信息(ssh-keygen -t rsa)
cat client_public_key1 > /home/user1/.ssh/authorized_keys  

chown -R wf01:sftp  /home/wf01/.ssh/

chmod 644 /home/wf01/.ssh/authorized_keys

chmod 755 /home/wf01/.ssh/


-- 第四部分: 配置文件配置(sshd_config)

vi /etc/ssh/sshd_config

註釋掉  : Subsystem      sftp    /usr/libexec/openssh/sftp-server

查看是否有: Subsystem      sftp    internal-sftp   沒有一定補上去

末尾新增:

Match User wf01
ChrootDirectory /data/sftp/wf01
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no


-- 第五部分: 重啓sshd_config,測試.
重啓ssh服務

service sshd restart

測試命令:

sftp wf01@IP  

sftp> get /usr/local/index.php  /home/fuyatao/
將從遠程主機的  /usr/local/目錄下將 index.php 下載到本地  /home/fuyatao/目錄下

sftp> put /usr/local/Linuxgl.pdf /var/www/fuyatao/
把本地 /usr/local/目錄下的 linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/ 目錄下

===============================================================================
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章