原因:
VMware上开了两台虚拟机,想要把一个真机的文件传到另一个虚拟机上时,出现问题。
问题描述
初试 scp kubeapps-12.2.8.tgz 192.168.170.130:/root
命令,输入密码后一直显示permission denied,且确定密码无误。
解决方案:
以下所有操作均在root
用户下执行。
1.尝试更改配置文件:
可以改变两台虚拟机的/etc/ssh/sshd_config文件中的配置,看是否起作用,使用vim /etc/ssh/sshd_config
访问该文件。
一般配置显示为:
#PasswordAuthentication no
或 #PemitRootLogin/without-password
依据实际情况,改成
PasswordAuthentication yes
或 PemitRootLogin yes
没有的话自己加一行即可。
重启服务
/etc/init.d/ssh restart
如果上述操作后仍错误,请尝试第二种方法。
2.使用authorized_keys文件
(1)在真机上输入ssh-keygen -t rsa
命令,后续连按回车即可,之后会生成一个密钥。
(2)使用cd /root/.ssh
进入目录,查看生成的id_rsa.pub文件。使用vim id_rsa.pub
访问文件内容,复制文件内容。
(3)在另一台虚拟机上进入cd /root/.ssh
目录,输入touch authorized_keys
创建文件,vim authorized_keys
访问该文件并将上述id_rsa.pub文件内容拷贝到该文件下。
(4)设置文件权限。在/root路径下使用chmod 700 .ssh
,在/root/.ssh路径下 chmod 644 authorized_keys id_rsa.pub
命令修改文件权限。修改完后使用ll
查看修改结果。
使用scp传输即可。
在我操作的时候出现了一个
The authenticity of host '192.168.170.130(192.168.170.130)'can't be established.
ECDSA key fingerprint is SHA256:jy98y4lw8PjsZ7jzwY0FGqlzbac4+hMG9i2yZRlRWoA.
Are you sure you want to continue connecting(yes/or/[fingerprint])?
这里一定要输入yes
,我一般习惯只习惯直接输入一个y,在这里是不通过的。输入yes后,传输成功。
如果经过上述操作后任有问题,考虑是否为需要传输文件的权限问题,将需要传输的文件chmod 777 文件名
修改权限。