打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Winscp使用密钥登录
userphoto

2022.06.21 江苏

关注

背景:通常我们使用winscp

通过密码认证去连接服务器进行文件的ftp操作,但是为了安全,我们服务器上经常会禁止使用密码连接,而改用密钥认证。而且服务器上经常会禁止root用户直接登录。所以接下来我们就讲下怎么用winscp去使用密钥认证,以及登入后如何从普通用户su到root用户。

一、使用OpenSSH密钥连接

Winscp使用的是putty作为SSH登录工具,而puttygen所生成的是以.ppk结尾的密钥文件,所以你使用xshell生成的密钥会提示添加失败,此时你有两种选择,

1、使用putty重新生成putty格式的密钥,并添加到服务器上。

2、将openssh格式的私钥转换成winscp支持的.ppk格式。

这里,我们选择第二种方式。如下:

1、尝试用winscp直接导入xshell的密钥报错

Winscp--》高级--》SSH--》验证--》密钥文件

接着我们导入之前xshell生成的密钥,就报错了,弹出如下窗口:

此时报错了,因为之前用xshell导出的密钥是OpenSSH格式的,而winscp不支持这种格式,所以我们要将该密钥转换成winscp支持的.ppk格式。

2、OpenSSH转换成ppk格式

参考:https://www.cnblogs.com/Waterclouds/p/4768768.html

打开winscp--》工具--》运行PuTTYgen(G)

打开puttygen 选择-Load 找到你之前用xshell生成的open-ssh格式的密钥文件,选择所有格式然后加载你的私钥

输入之前open-ssh密钥的口令:

然后就是导入成功,保存私钥文件为.ppk格式。

格式转换完毕,最后重新导入ppk文件,即可。

此时,密钥文件导入成功,重新登录即可通过winscp用密钥认证连接了。

二、sftp后sudo成root用户

参考:https://www.cnblogs.com/liangzai-cool/p/5956090.html

一般服务器为了安全禁止ssh下root账号登录,此时使用sftp登录管理服务器只能使用普通账号登录,所以访问路径的时候,经常会碰到权限不足的问题,如下图:

1、获取sftp-server的路径

?
01
02
[root@localhost ~]# cat /etc/ssh/sshd_config | grep sftp
Subsystem sftp /usr/libexec/openssh/sftp-server

这个/usr/libexec/openssh/sftp-server路径,后面几步都要用到。

2、配置能够sudo的用户

步骤一里面我们配置了可以用sftp通过密钥登录。所以,这里针对同一个用户,要配置sudo权限。

?
01
02
[root@localhost doubles]# vim /etc/sudoers
doubles ALL=(root)  NOPASSWD:  ALL

或者

?
01
doubles ALL=(root)  NOPASSWD:/usr/libexec/openssh/sftp-server

3、配置winscp

Winscp--》高级--》sftp,选择SFTP服务器,选择sudo su -c ...,并且将路径改为上面获取到的sftp-server路径:/usr/libexec/openssh/sftp-server,如下图

点击确定,保存,然后登录即是root用户了,对系统有生杀大权。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WinSCP 修改用户权限至root的方法
ssh重装ubuntu
centos6升级openssh至7.9
SSH基本概述
系统管理工具包: 通过 OpenSSH 设置 UNIX 远程访问
Install and configure a SSH server on WinXP
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服