当前位置:  操作系统/服务器>linux

ssh,scp自动登陆的实现方法

    来源: 互联网  发布时间:2014-10-13

    本文导语:  示例:A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运行命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@192.168.60...

示例:
A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux

在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110  "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub  root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)

回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)

如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些

深入学习

理解登录过程
首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码,可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制,而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被人配了(私钥被人复制)。

当然, 这种例子只是方便理解罢了,
拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了
所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开" server, 再以root的身分登录, 即使现在root密码已经更改!

如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如:
[root@wwy .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.102.12
......

这样私钥和公钥的名字分别就是:
id_rsa_192.168.102.12 和 id_rsa_192.168.102.12.pub
然后将 id_rsa_192.168.102.12.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys2 文件中。

最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
# ssh -i /root/.ssh/id_rsa_192.168.102.12  192.168.102.12

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了

scp也是一样的
如:
scp -i /root/.ssh/id_rsa./xxx  192.168.102.158:/home/wwy/bak


    
 
 

您可能感兴趣的文章:

  • client端用ssh登陆SSH失败
  • 求网络管理员或SSH熟手 关于远程SSH登陆的IP地址问题
  • 遇到过这种情况吗:为什么PuTTY不能用root帐户SSH成功登陆?用其他帐户都可以登陆!
  • 用SSH登陆LINUX服务器怎么登陆不了MYSQL的呢
  • 我用的是ssh来登陆我的机器,我的机器是redhat9.0,请问在什么文件上记录拉用户的登陆情况?
  • ssh远程登陆问题。
  • 请问怎么把本地文件拷贝到用SSH登陆的机器上
  • 使用ssh-keygen -t rsa建立密钥之后,可以实现两台linux主机之间的root用户免密码登陆。但无法实现两个普通用户之间免密码登陆
  • 请问ssh登陆如何设置?
  • SSH 无法登陆LINUX,什么问题?帮忙解答下啊
  • ssh 远程登陆,没反映。可能是什么原因?
  • Ubuntu下的SSH登陆问题
  • ssh远程登陆假死机怎么解决呀
  • 新建一个用户,然后用ssh登陆,我能否限制该用户只能访问默认目录,其他目录都没有权限进入?
  • 最快捷登陆ssh 服务器的方法
  • SSH登陆linux,明明输入对的密码,还是弹出来要我输入密码?
  • 请教:linux下如何限制特定ip的ssh登陆
  • solaris10远程登陆是否用ssh
  • ssh如何限制登陆的IP范围
  • 各位老大,没分了,请问如何限用户,使用SSH登陆...立即给分..
  • putty实现自动登录的方法(ssh和ssh2)
  • Java实现的SSH库 JSSH
  • Java实现的SSH通讯包 JSch
  • 用expect实现ssh自动登录服务器并进行批量管理的实现方法
  • 如何实现在2G HD空间下装 linxu+ftp server+ssh
  • 怎么样实现aix5机器上用ssh命令自动登录?
  • python paramiko实现ssh远程访问的方法
  • ssh自动登录的4种实现方法
  • shell脚本实现ssh自动登录功能分享
  • ssh批量登录并执行命令的python实现代码
  • python使用paramiko模块实现ssh远程登陆上传文件并执行
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ssh(ssh-keygen)配置免输入密码登录远程主机的方法
  • 请教通过SSH使程序持续运行的方法
  • 解决SSH连接超时的2个配置方法
  • 内网ssh/mysql登录缓慢的解决方法
  • ssh连接超时解决方法
  • 搭建SSH时的思考和遇到的几个问题的解决方法
  • SSH框架的常见问题和解决方法
  • ssh反向登录和ssh跳转的区别
  • C++语言的SSH客户端库 NetSieben SSH Library
  • 我想问一下,open ssh和ssh有什么区别?!
  • 纯Java的SSH-2协议包 Orion SSH2
  • 高性能的 SSH/SCP HPN-SSH
  • ssh-keygen设置ssh无密码登录失败
  • 急:请问SSH2链接是什么意思?在windows终端怎样具体操作来通过SSH2链接管理linux服务器?
  • 全注解的SSH框架 ssh-base-framework
  • ssh 登录出现:ssh_exchange_identification: Connection closed by remote host
  • 关于telnet,ssh1,ssh2的问题
  • "SSH Secure Shell Client" 和 "F-Secure SSH Client Trial"是同一个软件吗
  • ssh连接时报错 ssh: connect to host 192.168.9.92 port 22: No route to host
  • 如何设置SSH用非root用户登录,求完整步骤
  • 如何利用Ganymed SSH-2模拟SSH操作
  • debian 查看ssh
  • 在Linux中如何部署项目(SSH)
  • 请教有关ssh登录问题
  • 启动ssh时出错
  • ssh配置问题
  • Java的SSH工具包 SSHTools


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2019,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号-3