• git


    生成密钥

    ssh-keygen -t rsa -C "your_email@example.com"
    在你的家目录下会生成两个文件,一个公钥,一个私钥

    远程登录服务主机

    必须要添加你的电脑公钥到服务主机的家目录上 ~/.ssh/

    如何添加呢

    scp /home/vagrant/.ssh/id_rsa.pub root@????:/root/.ssh 这种???没卵用
    这里有一个前提就是,你一定要先把添加你的电脑公钥到服务主机的家目录上 ~/.ssh/,不然这些方法都是没用的,要是这种方法可以,那外面电脑不是乱套了,随便给你来添加个公钥到别人主机
    然后你在ssh去访问,瞬间爆炸
    cat /home/vagrant/.ssh/id_rsa.pub | ssh root@175.24.68.176 "cat >> ~/.ssh/authorized_keys"
    scp /home/vagrant/.ssh/id_rsa.pub root@175.24.68.176:/root/.ssh (上面两个添加一个就行,第一个是追加,第二个云服务器会自动的把公钥文件覆盖到服务器上的对应文件)
    输入后,是要你输入服务器密码的,就是登陆,然后你复制完你电脑的公钥到远程服务器后
    你就可以不用密码了登陆了,直接ssh root@??????,就登陆了
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic). lost connection emmm 事情不可能一帆风顺,这就对了
    出现这个,就是远程服务器禁止密码验证,这样你又不能密钥登陆远程,密码还不让你输入,那不是很狗血

    如果到这里你还是出现上面那个错误,那恭喜你,这是你购买的云服务器那边的配置有问题,也就是云服务器那边根本就没开启密码验证,只有密钥验证

    到这里,就无解了,你只能乖乖回去云服务器终端上边修改配置文件(/etc/ssh/sshd_config)把

    PasswordAuthentication no 修改成 yes
    就可以了回到你自己的电脑,再来输入之前的那个方法,把公钥添加到服务器上

    你以为这样就完了,不,不可能,哈哈哈,你会发现你每次登陆都要输入密码,这就很操蛋,如何免密呢

    很简单把你自己电脑和远程云服务器上面的配置文件(/etc/ssh/sshd_config)【如果要互联,那么就两边都改,不然改云服务器那边就行】
    修改成下面几项
    PasswordAuthentication no
    PermitRootLogin no
    UsePAM no
    RSAAuthentication yes
    PubkeyAuthentication yes

    当然最最重要的是,每一次修改配置文件,一定要重启ssh服务,这边我以最常见的两种,来说

    Ubuntu --- sudo /etc/init.d/ssh restart
    centos --- systemctl restart sshd.service

    最后还要说一下,公钥可以添加多个,分开就行在同一个文件中,这样你就能在多台电脑登陆服务器

  • 相关阅读:
    后端解决跨域
    常用JS验证函数
    Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
    js常用小功能示例
    软件开发五个阶段
    子类异常、访问权限与父类的关系
    什么时候需要使用try-catch
    java中的容器组件和非容器组件
    main方法必须是public static void main(String[] args)
    创建线程的方法
  • 原文地址:https://www.cnblogs.com/reyirfw/p/14045803.html
Copyright © 2020-2023  润新知