Java-017-linux使用一

ssh远程登录

Windows工具

putty

SSH命令

ssh命令是用于远程登录和管理Linux服务器的一个工具. 主要功能就是本地输入Linux命令, 然后实际命令是在远程机器上运行.

这个命令是我们日常登录到服务器进行远程管理工作使用最多的命令.

登录命令
1
ssh [-p 端口] [用户名]@[远程服务器IP地址]

命令实例:

1
2
3
如果省略端口设置, 使用ssh默认端口22
如果省略用户名设置, 使用当前系统登录用户的用户名
ip地址不能省略

登录验证方式

  1. 密码验证

    运行命令后, 按照提示输入远程机器的用户的对应密码登录

  2. 使用密钥对验证

    • 公钥
    • 私钥

      公钥和私钥是一一对应的, 公钥类似于锁, 私钥是对应的钥匙. 可以提前把一个公钥上传到服务器上, 然后私钥保存在本地, 每次登录的时候, ssh命令会自动使用本地的私钥进行验证!

    1. 生成密钥, 如果已经生成过, 则保存在 ~/.ssh/目录下, 私钥: id_rsa 和公钥: id_rsa.pub. 重新生成记得备份
      1
      ssh-keygen // 在 ~/.ssh/下生成私钥和公钥
2. 复制生成的公钥 ~/.ssh/id_rsa.pub 到远程服务器

    
1
2
3
ssh-copy-id [-p 端口] [用户名]@[远程服务器IP地址]

ssh-copy-id ubuntu@ec2-54-193-80-137.us-west-1.compute.amazonaws.com
如果还是不行,就打开远程主机的/etc/ssh/sshd_config这个文件,检查下面几行前面"#"注释是否取掉。
1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

ssh配置文件

ssh配置文件在 ~/.ssh/config, 可以在配置文件中, 添加常见的登录信息, 然后之后登录时候可以使用更短的命令

例如:

1
2
3
4
5
6
7
Host ubuntu
HostName 10.211.55.5
User hacker
IdentityFile "~/.ssh/hacker.pem"

# 缩写登录命令:
ssh ubuntu

参考文章和扩展

SSH服务器安装和启动

一般远程服务器, 例如阿里云服务器, AWS EC2. 默认情况下是开启ssh服务器的, 这样就可以直接使用ssh命令登录.

如果你的服务器没有安装则可以使用如下命令安装和启动, 以Ubuntu为例:

  1. 安装

    1
    sudo apt-get install openssh-server
  1. 启动
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //启动
    sudo service ssh start

    // 重启
    sudo service ssh restart

    //停止
    sudo service ssh stop
    安装服务自启动
    sudo update-rc.d ssh defaults
    取消服务自启动
    sudo update-rc.d ssh remove