总结: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