总结:ubuntu openssh-server 搭建SFTP服务SSH服务,支持密钥登录(免密模式)

----------ubuntu openssh-server
一、openssh干净卸载
sudo apt-get remove openssh-server openssh-client --purge -y
卸载软件,同时清除openssh的配置文件(/etc/ssh目录下)

二、openssh安装
apt-get install openssh-server openssh-client

三、修改配置
vim /etc/ssh/sshd_config

--1、修改端口
Port 10022

--2、
service restart ssh

--3、客户端 ssh登录
ssh -p 10022 usr@ip
注:需要输入usr密码进行登录

四、win10下生成 密钥登录SSH,无需输入密码
--1、openssh-client 生成key,注 -b -P -C 非必须
ssh-keygen -t rsa -b 4096 -P "93642592" -C "93642592@qq.com"
会在用户目录下 administrator/.ssh/ 下生成一对公私密钥
id_rsa
id_rsa.pub

--2、将本地公钥COPY到sshd 服务器上
a) 在SSH服务器上/root/.ssh/下创建 authorized_keys 文件
b) 将id_rsa.pub文本内容COPY到authorized_keys中,保存退出。
c) service restart ssh

--3、修改vim /etc/ssh/sshd_config,允许使用密钥登录
PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

五、测试SSH,SFTP登录
ssh -p 10022 usr@ip (注:小写P)
sftp -P 10022 usr@ip (注:大写P)
注:不再要要输入usr密码进行登录

 

登陆失败原因

[kiosk@foundation42 ~]$ ssh -p 10022 usr@ip (注:小写P)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ff:c7:2e:f8:a2:24:2b:77:81:43:62:f8:a4:da:81:0a.
Please contact your system administrator.
Add correct host key in /home/kiosk/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/kiosk/.ssh/known_hosts:5
RSA host key for 172.25.42.3 has changed and you have requested strict checking.
Host key verification failed.


找到 /administrator/.ssh/known_hosts,删除,重新SSH 登录即可。

因为known_hosts存储了错误的SSH服务器的公钥,删除后,SSH重新登录时会从SSH服务端重新下载公钥,并存放在known_hosts文件中。

 

六、SFTP传输文件
1、为了数据和服务的安全, 很多⽣产环境中的Linux服务器不能使⽤外⽹环境. 在只有SSH连接的情况下, 传输⽂件变得很不⽅便。
2、如果Linux服务器未安装⽤于上传和下载的lrzsz软件, ⼜不能现场安装, 此时可考虑使⽤sftp完成相关操作。
3、FTP是⼀种⽅便数据共享的⽂件传输协议, 包括⼀个FTP服务器和多个FTP客户端. FTP客户端通过FTP协议从服务器上下载资源。
4、SFTP是Secure File Transfer Protocol(安全⽂件传输协议)的缩写, 可以为传输⽂件提供⼀种安全的⽹络的加密⽅法。
5、SFTP协议是在FTP的基础上, 对数据采取了加密/解密技术, 使数据传输更安全。
6、SFTP的传输效率⽐FTP的低很多。

1.sftp建⽴连接
[root@localhost ~]# sftp username@remote_ip(or remote host name), # 连接root⽤户, 则可省略"root@".
[root@localhost ~]# sftp -o port=1000 username@remote_ip
[root@localhost ~]# sftp root@68.56.32.159

2.sftp - 上传⽂件:如果上传/下载的是⽂件夹, 在put/get命令后加上-r参数即可。
上传⽂件:把本地服务器的/www/wwwroot⽬录下⾯的study.log⽂件上传到远程服务器的/www/server⽬录下。
sftp> lcd /www/wwwroot
sftp> put study.log /www/server
上传⽂件夹:把本地服务器的/www/wwwroot⽬录下⾯的test⽂件夹上传到远程服务器的/www/server⽬录下。
sftp> put -r test /www/server
查看远程服务器/www/server⽬录下⾯的⽂件和⽂件夹
sftp> ls /www/server

3.sftp - 下载⽂件
下载⽂件:把远程服务器的/www/server⽬录下⾯的study.log⽂件下载到本地服务器的/www⽬录下。
sftp> get /www/server/study.log /www
下载⽂件夹:把远程服务器的/www/server⽬录下⾯的test⽂件夹下载到本地服务器的/www⽬录下。
sftp> get -r /www/server/test /www
查看本地服务器/www⽬录下⾯的⽂件和⽂件夹
sftp> lls /www

4.sftp与ftp有着⼏乎相同的语法和功能
① ls, rm, cd, mkdir, pwd 等指令是对当前连接的远程端服务器的操作。
② lls, lrm, lcd, lmkdir, lpwd 等指令是对本地端服务器的操作 —— 在上述指令前加l(local)即可

5.退出sftp
exit

posted on 2022-05-03 18:25  lzlvv  阅读(1759)  评论(0编辑  收藏  举报

导航