美文网首页
使用ssh远程连接

使用ssh远程连接

作者: daifee | 来源:发表于2017-04-23 19:07 被阅读0次

    ssh程序分为客户端服务端,利用ssh程序可以实现本地电脑安全连接远程主机

    名词解析:

    • 客户端:作为访问者,运行在本地电脑的ssh程序
    • 服务端:作为被访问者,运行在远程主机的ssh程序
    • 本地电脑:泛指用户的电脑,例如:笔记本电脑
    • 远程主机:泛指服务器,例如:阿里云服务器

    安装 ssh 程序

    • 客户端程序 sudo apt-get install openssh-client
    • 服务端程序 sudo apt-get install openssh-server

    服务端程序依赖客户端程序

    生成密钥

    1. 执行生成密钥的客户端命令 ssh-keygen(使用默认参数)
    • 默认密钥路径:~/.ssh/id_rsa
    • 默认注释:空
    1. 根据提示输入指定的密钥文件路径(建议使用存放在默认目录
      ~/.ssh
    2. 根据提示不输入密码短语(passphrase)

    密码短语:

    • 使用密码短语,以后每次使用密钥都会被询问输入密码短语,很麻烦,也难记。
    • 如果使用密码短语,可以使用ssh-agent程序记住密码短语,避免每次被询问输入密码短语。
    • 如果不用密码短语,要小心别人从你硬盘偷走私钥

    不用密码短语更简单,私钥被偷走的可能性很低

    上传公钥到服务端

    如果公钥路径为:~/.ssh/id_test.pub,输入下面命令

    ssh-copy-id -i ~/.ssh/id_test.pub -p 22 $user@$hostname
    

    ssh-copy-id 会将公钥保存到远程主机的文件(~/.ssh/authorized_keys),如果没有这个文件,则自动创建。
    ~/.ssh/authorized_keys是远程主机$user用户目录中的文件。

    禁用密码登录服务端

    修改服务端配置文件/etc/ssh/sshd_config

    # 更改端口
    Port 2222
    # 禁止密码登录
    PasswordAuthentication no
    # 不能没有密码
    PermitEmptyPasswords no
    # 
    ChallengeResponseAuthentication no
    

    登录服务端

    密码登录:

    ssh -p 2222 $user@$hostname
    # 根据提示输入帐号和密码
    

    私钥登录:

    ssh -p 2222 -i /path/to/private-key $user@hostname
    

    第一次连接的远程主机,ssh会“询问”你再次确认。确认后会将远程主机的信息保存在~/.ssh/known_hosts文件,以后的连接就不会再“询问”了。


    参考

    相关文章

      网友评论

          本文标题:使用ssh远程连接

          本文链接:https://www.haomeiwen.com/subject/mhmyzttx.html