zoukankan      html  css  js  c++  java
  • 使用RSA访问目标机

    首先,在本地或者说是想要发起访问请求的机器的上创建好公钥和私钥(使用个人的用户登陆的,我用的root的用户,所以前面的标识符是#,而不是$ )

    进入到你的用户路径下的/home/xxx/.ssh/路径下,最好查看下都已经有了什么rsa之类的文件,后面创建的时候避免重名,使用ssh-keygen创建公钥和私钥:

    # cd ~/.ssh/
    # ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): my_rsa
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in my_rsa.
    Your public key has been saved in my_rsa.pub.
    The key fingerprint is:
    xx:xx:xx:……:xx:xx root@localhost.localdomain

    -t 是指定你的公钥和私钥的类型,可以是 RSA 或者 DSA。

    红色的部分如果填写的话,你的公钥和私钥的名字就会是这个,公钥的话后缀为 .pub 。

    下面是让你输一个密码,输入的时候字符不回显,这里我就是直接回车,代表无密码。

    如果是在unix下的运行的话,后面还有个 key's randomart image。

    这时 ll (两个小写L)就能看到目录下已经创建好了两个文件:

    # ll
    -rw-------   1 user  group  1766 11 13 15:15 my_rsa
    -rw-r--r--   1 user  group   409 11 13 15:15 my_rsa.pub

    可见,默认的情况下,这个私钥(my_rsa)只能是给创建的用户使用的,别人当然最好不要随便使用我的私钥咯。

    然后,把公钥(my_rsa.pub)放到目标机上(使用root用户登陆到目标机上,要不然很多操作需要确认的)

    无论是什么途径,scp 或者 u盘,把公钥(my_rsa.pub)放到目标机的 ~/.ssh/ 这个路径下

    请注意,这边用了一下相对路径 “~”,主要是考虑到目标机可能会让不同的人去登陆,如果你指定了root用户,那么这个路径就是/root/.ssh/;如果用户是mike,那么路径就是/home/mike/.ssh/。

    确认公钥已经在这个路径下之后,最好修改一下权限:

    # chmod 700 -R ~/.ssh/
    # chown user:user -R ~/.ssh/

    在这之后需要把公钥(my_rsa.pub)的内容拷贝到一个名为authorized_keys的文件中。什么?没有?那就创建一个呗!

    # cat my_rsa.pub >> ~/.ssh/authorized_keys

    再然后,到本机上操作点东西:

    如果你就只是像这样操作:

    # ssh 192.168.8.8

    就在你本机的 ~/.ssh/ 路径的config文件里面写两句话:

    # vim ~/.ssh/config
    // 添加下面两句话
    host 192.168.8.8
    identityfile ~/.ssh/my_rsa

    然后你就可以用上面的ssh IP登陆到目标机上了,用户就是你当前的用户咯~

    最后,额外一些

    如果你看到别人都是用像下面这样的语句登陆到一个目标机上的话:

    # ssh mike@192.168.8.8 -p9000

    那你就还要再改一改你的配置了:

    # vim ~/.ssh/config
    // 添加下面两句话
    host 192.168.8.8
    user mike
    port 9000
    identityfile ~/.ssh/my_rsa

    如果你现在就尝试用上面的这个带用户名带端口号的方法,多半是登不到你想要登陆的主机的:

    # ssh mike@192.168.8.8 -p9000
    ssh: connect to host 192.168.8.8 port 9000: Connection refused

    因为你要看看目标主机有没有sshd开通了这个端口的监听:

    这个就要到目标机上鼓捣了:

    # vim /etc/ssh/sshd_config
    // 原文有可能是这样
    ……
    #Port 22
    #Protocol 2,1
    Protocol 2
    ……
    
    // 你要修改成这样
    ……
    Port 22
    Port 9000
    #Protocol 2,1
    Protocol 2
    ……

    虽然上面的Port 22是被注释掉的,但是 sshd 一般都是默认监听这个的,不信你可以用 netstat 查看一下,为了不影响原有的监听,还是也顺手把22的注释放开,然后在下面添上你想要用的端口,之后要重启一下 sshd 服务:

    # /etc/init.d/sshd restart
    停止 sshd:                                    [确定]    
    启动 sshd:                                    [确定]

    然后你用 netstat 查看一下就发现你添加的端口已经在被 sshd 侦听了。

    这样,你再去你本机上用上面那个 ssh 命令去登陆,应该就可以了~

    如果还有问题的话,欢迎留言,虽然我也是个新手,但是很愿意和你一起进步~O(∩_∩)O~

    如果你觉得本文对你有帮助的话,烦请点点推荐,谢谢!

  • 相关阅读:
    回答自己之前的提问!
    阅读《构建之法》第13-17章
    阅读《构建之发》10-12章
    阅读《构建之法 》8,9,10章
    Practise 5.2测试与封装(黑白盒
    Practice5.1 测试与封装5.1
    Practice4 阅读《构建之法》6-7章
    Practice3 阅读《构建之法》1-5章
    “做汉堡”之评价我的队友
    Practice2 结对子之“小学四则运算”
  • 原文地址:https://www.cnblogs.com/carrotH/p/4095251.html
Copyright © 2011-2022 走看看