采用的方式是生成一个认证文件,然后将其公钥存在于另一个主机中。这样就可以通过RSA方式复制目标主机中的文件了。
- 首先需要使用ssh-keygen生成一个rsa文件,文件公钥存放于另一个主机的/<userName>/.ssh/authorized_keys文件中。先查看本地主机是否已经有了文件,如果已经有了文件,则不必再生成的。
ls /root/.ssh
authorized_keys authorized_keys1 known_hosts
由此可见没有RSA文件。则生成一个。注意我在输入密码时直接回车的,文件名也是使用默认,直接回车的。
# ssh-keygen -t rsa -C "this rsa for copy files on net hosts"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.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.
The key fingerprint is:
SHA256:XXXXIdmIVZUxq8hXXXXXXXXXXXXXXNY9BXXXXX this rsa for copy files on net hosts
The key's randomart image is:
+---[RSA 2048]----+
|oEO=B==++ |
|o+o++++*.. |
|o . .*Xoo.. |
| o .*B*... |
|. .+.oSo |
|.. . . . |
|. . |
| |
| |
+----[SHA256]-----+
再次查看已经生成了文件。
# ls /root/.ssh
authorized_keys authorized_keys1 id_rsa id_rsa.pub known_hosts
- 将id_rsa.pub中的文件内容复制到需要复制文件的目标主机上。添加到/<userName>/.ssh/authorized_keys文件中。此处操作省略。
- 执行复制文件的操作。执行成功!
scp root@192.168.92.52:/u01/test.txt /u01/test.txt
如果上述方法效:可试用下面的方法。参考:https://blog.csdn.net/simploving/article/details/79631588
单向登陆的操作过程(能满足上边的目的):
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )