Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法

一、Linux的远程传输文件scp使用方法

1.当前Linux系统 --> 远程Linux系统

scp 当前Linux系统文件路径/文件名 远程Linux用户名@IP地址:远程Linux系统文件路径

2.远程Linux系统 -->当前Linux系统

scp 远程Linux用户名@IP地址:远程Linux系统文件路径/文件名 当前Linux系统文件路径

例如传输文件:

scp /home/vpn/windscribe-cli_1.3-19_amd64.deb root@172.28.128.4:/home/vpn

 

二、远程传输时权限被拒绝的解决方法

传输时出现错误:

Permission denied (publickey).

lost connection

权限被拒绝(publickey)

失去了连接

 

方法1:

1.登录远程主机,将/etc/ssh/sshd_config文件中的PasswordAuthentication no 改为PasswordAuthentication yes

2.重启sshd服务:

systemctl restart ssh.service

然而我使用这种方法还是没有解决问题..

 

方法2:

1.在当前Linux主机中运行以下命令

ssh-keygen -t rsa

运行过程的操作如下:

Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/ssh/id_rsa):  #回车 
Enter passphrase (empty for no passphrase):  #回车 
Enter same passphrase again:  #回车 

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

执行完毕后会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub

 

2.将当前Linux主机上的id_rsa.pub文件拷贝到远程Linux主机的root用户目录下的.ssh目录下,并且改名为authorized_keys 。若已经有该文件覆盖掉内容即可。

这样在当前Linux主机上使用scp命令传输文件到远程Linux上将不提示输入密码了,直接传输了。也可在当前Linux主机上使用scp命令将远程Linux上文件传输到本机;总之不需要验证,就可以在当前Linux系统访问远程Linux系统

注:如果有多台计算机需要与远程Linux系统进行传输,则只需将id_rsa.pub中的内容复制到authorized_keys文件中即可。

 

3.再次执行传输命令:

scp /home/vpn/windscribe-cli_1.3-19_amd64.deb root@172.28.128.4:/home/vpn

已经可以使用。

 

 

 

当你尝试通过SSH从Windows上传文件Linux时出现"Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). lost connection?"错误,这通常是由于以下原因之一导致的: 1. SSH密钥问题:这个错误可能是由于SSH密钥验证失败引起的。在SSH连接中,公钥和私钥用于身份验证。请确保你在Windows上使用的私钥与Linux服务器上的公钥匹配。你可以尝试重新生成SSH密钥对,并将公钥添加到Linux服务器的`authorized_keys`文件中。 2. SSH配置问题:另一个可能的原因是SSH配置文件中的错误设置。请检查你的SSH配置文件(通常是`/etc/ssh/sshd_config`)并确保以下设置正确: - `PubkeyAuthentication`设置为`yes` - `PasswordAuthentication`设置为`yes`(如果你想使用密码进行身份验证) - `GSSAPIAuthentication`设置为`no` 3. 用户权限问题:如果你正在尝试将文件上传到Linux服务器上的某个目录,确保你具有足够的权限将文件复制到该目录。你可以尝试将文件上传到你具有写入权限的其他目录,例如你的主目录。 4. 防火墙问题:防火墙设置可能会阻止SSH连接。请确保你的Linux服务器上的防火墙允许SSH连接。你可以尝试禁用防火墙或配置防火墙规则以允许SSH连接。 5. SSH服务问题:最后,这个错误可能是由于SSH服务本身的问题引起的。请确保SSH服务正在运行,并且没有其他问题导致连接中断。 以下是一个示例,演示了如何通过SSH从Windows上传文件Linux服务器: ```shell scp C:\path\to\file.txt username@linux-server:/path/to/destination ``` 请注意,上述命令中的`C:\path\to\file.txt`是你要上传的文件的路径,`username`是你在Linux服务器上的用户名,`linux-server`是Linux服务器的主机名或IP地址,`/path/to/destination`是你要将文件复制到的目标路径。
当你在使用SSH连接到远程服务器时,出现"ubuntu@172.31.34.230: Permission denied (publickey). lost connection"的错误提示,这通常是由于SSH登录过程中的权限问题所引起的。 首先,这个错误提示表明你在连接时使用的密钥认证方式被服务器拒绝了。一种解决方法是检查你的密钥文件是否正确配置并且已经添加到服务器的授权密钥列表中。你可以使用以下命令将你的公钥文件(id_rsa.pub)复制到服务器的`/home/user001/.ssh/authorized_keys`文件中: ``` scp id_rsa.pub user001@serverName:/home/user001/.ssh/authorized_keys ``` 确保你已将`user001`替换为你在服务器上的用户名,`serverName`替换为服务器的地址。 另外,你还可以检查服务器上的SSH登录设置,确保你的账号已经添加到了登录白名单中。你可以通过编辑`/etc/pam.d/sshd`文件,添加以下行来设置SSH白名单登录: ``` auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail ``` 然后,将需要登录的账号添加到`/etc/sshusers`文件中。 最后,如果你仍然遇到连接问题,你可以尝试修改服务器上的权限设置。在Linux系统中,你可以使用`chmod`命令来更改文件和目录的权限。如果你遇到"Permission Denied"错误,可以尝试使用以下命令将文件或目录的权限设置为777: ``` chmod 777 <file_or_directory> ``` 请注意,在设置文件或目录权限时,要小心保护服务器的安全性,只将必要的权限授予相应的文件或目录。 综上所述,要解决"ubuntu@172.31.34.230: Permission denied (publickey). lost connection"错误,你可以检查密钥认证、SSH登录设置、文件/目录权限等方面,并根据需要进行相应的修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [工作中使用到的单词(软件开发)_2023_0316备份](https://blog.csdn.net/sxzlc/article/details/129581634)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值