linux 用openssh搭建sftp(包含注意点)

首先,最初需要查看下当前服务器是否已安装openssl和openssh

检验:  ssh -V

 

一。如果没安装。搭建sftp,需要三个部分: zlib(包含zlib,zlib-devel),openssl,openssh,所需要的rpm包在csdn里都有

 

1.一般的linux系统,包括rehat,centos等基本都有安装openssl

检测: which openssl

由于依赖性的问题,强制安装openssl-devel

rpm -ivh --nodeps --force openssl-devel-0.9.8e-22.el5_8.4.x86_64.rpm

 

2. 安装zlib的相关包,这步操作实际也可以在安装openssh检测时使用,会提示相关错误要你安装zlib

rpm -ivh --nodeps --force zlib-1.2.3-27.el6.x86_64.rpm

rpm -ivh --nodeps --force zlib-devel-1.2.3-27.el6.x86_64.rpm

 

3.安装openssh,解压缩openssh-5.4p1.tar.gz

tar zxvf openssh-5.4p1.tar.gz

cd openssh-5.4p1

./configure  --with-ssl-dir=/usr/local/ssl   #openssl的安装位置
make
make install

 

4.配置
(1) 修改sshd启动脚本 (仅限于只用sftp登录,否则ssh会报错)
# vi /etc/init.d/sshd
SSHD=/usr/sbin/sshd
改为
SSHD=/usr/local/sbin/sshd

修改sshd配置文件,tar包安装的配置文件位置在/usr/local/etc/sshd_config
cd /usr/local/etc
cp sshd_config  sshd_config.bak
cp /etc/ssh/sshd_config  /usr/local/etc/

(2) 如果要保留ssh,同时允许sftp,则在/etc/ssh/sshd_config编辑

vi sshd_config

# override default of no subsystems
# Subsystem    sftp      /usr/local/libexec/sftp-server

Subsystem      sftp internal-sftp
Match group sftp                  #组名,单个用户可以Match user 用户名

#Mathch user nb_bjuser

ForceCommand    internal-sftp
X11Forwarding no
ChrootDirectory /data/htdocs/     #指定实际目录
AllowTcpForwarding no       
ForceCommand internal-sftp

(3) 修改目录权限
chown root.sftp /usr/bj

groupadd  sftp
useradd -d /usr/bj -s /bin/false -g sftp nb_bjuser
passwd  nb_bjuser

(4) 重启sshd服务
service sshd restart

 

 二。如果已安装,则比较简单

创建目录和组,用户

mkdir / home / sftp
groupadd sftp
useradd - M - d / home / sftp - G sftp nb_bjuser
passwdnb_bjuser

 

编辑控制文件

 vim /etc/ssh/sshd_config

#注释原来的Subsystem设置
Subsystem   sftp      / usr / libexec / openssh / sftp - server
#启用internal-sftp
Subsystem       sftp     internal - sftp
#限制www用户的根目录
Match User nb_bjuser
ChrootDirectory / home / sftp
     ForceCommand     internal - sftp
 
控制目录权限
chown root.root /home/sftp
chmod 775 /home/sftp
 
 
sftp设置加密,服务器的私钥可用去覆盖客户端的私钥

---sftp 公钥和私钥
ssh-keygen -t dsa,(或选rsa算法也行),一路回车就好;
进入用户$HOME/.ssh,查看是否存在id.dsa和id.dsa_public

新建.ssh目录,更改所有者和权限 
1)cd /home/longtb
2)mkdir .ssh 
3)chown longtb:users .ssh 
 新建authorized_keys文件,复制.pub文件内容添加至该文件末,更改所有者和权限 
 1)cd .ssh 
 2)vi authorized_keys
 3)chown longtb:users authorized_keys

### 回答1: 要在Linux搭建SFTP,您可以按照以下步骤进行操作: 1. 安装OpenSSH服务器:在终端输入以下命令: sudo apt-get install openssh-server 2. 配置OpenSSH服务器:打开/etc/ssh/sshd_config文件,并确保以下行未被注释: Subsystem sftp /usr/lib/openssh/sftp-server 3. 重启OpenSSH服务器:在终端输入以下命令: sudo service ssh restart 4. 创建SFTP用户:在终端输入以下命令: sudo adduser sftpuser 5. 配置SFTP用户:打开/etc/ssh/sshd_config文件,并添加以下行: Match User sftpuser ChrootDirectory /home/sftpuser ForceCommand internal-sftp AllowTcpForwarding no 6. 重启OpenSSH服务器:在终端输入以下命令: sudo service ssh restart 现在,您已经成功地在Linux搭建SFTP,并创建了一个SFTP用户。您可以使用SFTP客户端连接到该用户,并上传/下载文件。 ### 回答2: Linux搭建SFTP是一个很常见的任务,这种基于SSH协议的安全文件传输协议可以替代FTP来传输文件,更加安全和可靠。下面是一个简单的步骤指南,帮助你完成在Linux搭建SFTP的过程。 步骤一:设置SSH服务 在搭建SFTP之前,确保SSH服务已经被正确地安装和运行。可以通过在终端输入“sudo service ssh status”命令来检查状态。如果SSH服务没有安装,则可以使用“sudo apt install openssh-server”来进行安装。 步骤二:创建SFTP用户 接下来需要创建SFTP用户,通过使用以下命令来创建普通的Linux用户: sudo useradd -m -s /bin/bash sftpuser 其,“-m”选项用于创建home目录,“-s”选项则用于设置用户默认shell。 步骤三:配置SSH 打开SSH配置文件,可以使用以下命令: sudo nano /etc/ssh/sshd_config 在文件末尾添加以下配置: Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /home/sftpuser/ AllowTcpForwarding no X11Forwarding no 其,上述的配置项允许普通用户使用内部SFTP服务和密码身份验证,并限制用户的访问范围。使用“ChrootDirectory”选项的目的是限制访问用户的根目录,使得他们只能访问指定目录的内容。 完成以上配置之后,使用以下命令来重启SSH服务并应用更改: sudo systemctl restart sshd 步骤四:设置用户密码 使用以下命令来为sftp用户设置密码: sudo passwd sftpuser 步骤五:测试SFTP连接 现在,你应该可以使用SFTP客户端连接到你的Linux SFTP服务器。你可以使用完整的Linux桌面环境或命令行SFTP客户端来进行连接测试。例如,你可以使用以下命令进行连接: sftp sftpuser@your.server.com 连接成功后,你应该能够看到sftp用户的主目录的内容,并进行文件传输。 在完成以上步骤之后,SFTP服务已经成功地在Linux服务器上搭建起来了,你可以放心地使用它来传输文件,保证数据的安全性和可靠性。 ### 回答3: Linux是一个强大的操作系统,其安全性和稳定性备受推崇。SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,使用SSH(Secure Shell)加密通信,保障数据传输的安全性。在Linux搭建SFTP服务器很简单,下面是详细步骤。 **第一步:安装OpenSSH** 首先需要安装OpenSSH,该软件包包含了SSH服务器和客户端。 在控制台,运行以下命令安装OpenSSH: ``` $ sudo apt-get install openssh-server ``` **第二步:配置SFTP** 1. 打开`/etc/ssh/sshd_config`文件 ``` $ sudo nano /etc/ssh/sshd_config ``` 2. 找到以下行并将其取消注释,如果没有就添加: ``` Subsystem sftp internal-sftp ``` 3. 将以下行添加到底部: ``` Match group sftp ChrootDirectory /home/%u ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no ``` 4. 保存并关闭文件。 5. 重启SSH服务来使更改生效。 ``` $ sudo service ssh restart ``` **第三步:创建SFTP用户** 1. 创建一个名为“sftp”的用户组 ``` $ sudo groupadd sftp ``` 2. 创建一个SFTP用户并将其添加到“sftp”组(例如,用户名为“sftpuser”) ``` $ sudo useradd -s /bin/false -d /incoming -m sftpuser -g sftp ``` 3. 为SFTP用户设置密码 ``` $ sudo passwd sftpuser ``` 4. 更改SFTP用户收件箱的所有者: ``` $ sudo chown root:root /home/sftpuser ``` 5. 创建一个incoming目录 ``` $ sudo mkdir /home/sftpuser/incoming ``` 6. 更改incoming目录的权限 ``` $ sudo chmod 700 /home/sftpuser/incoming $ sudo chown sftpuser:sftp /home/sftpuser/incoming ``` **第四步:测试SFTP** 1. 在另一台计算机上打开终端并运行以下命令,将输入sftpuser的密码登录到SFTP服务器 ``` $ sftp sftpuser@your_server_ip_address ``` 2. 在SFTP上传文件,或者下载文件到本地计算机。 **总结** 以上就是在Linux搭建SFTP服务器的步骤。SFTP对数据传输的安全性有保障,使数据传输更加可靠。在使用SFTP时要注意用户的权限和目录的设置,确保数据及服务器的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值