zoukankan      html  css  js  c++  java
  • Ubuntu下ssh使用

    Ubuntu下ssh使用

    2019年09月27日19:35:34

    1 ssh连接配置

    LInux的ssh分为客户端openssh-client和服务器openssh-server。客户端的ssh程序是用ssh来连接别的电脑的。服务器的ssh程序是让别的电脑通过ssh链接本机的。

    并且客户端openssh-client通常Ubuntu会默认安装的。

    sudo apt install openssh-client #本地主机运行此条,实际上通常是默认安装client端程序的
    sudo apt install openssh-server #在被连接的服务器运行此条命令安装
    

    2 本地主机的客户端ssh使用

    常用连接方法:使用对方ip、账户和密码直接登录

    一般openssh-clientubuntu默认安装可以直接使用ssh。

    在本地主机上运行以下命令来链接远程服务器,使用默认的22端口的端口:

    ssh yucicheung@10.170.11.147
    #或
    ssh -l yucicheung 10.170.11.147
    

    如果远程服务器的SSH服务不是使用22端口,那么SSH链接时则需要用-p指定端口(如258端口):

    ssh -p 258 yucicheung@10.170.11.147
    #或
    ssh -l yucicheung -p 202 10.170.11.147
    

    注意:ssh指定端口的选项是小写的p

    退出远程登录:

    用Ctrl+D或者

    exit
    

    本地主机与远程服务器主机互传文件

    注意:

    1. scp指定端口的选项是大写的P
    2. 以下所有指定都是在本地主机上执行

    (1)从远程服务器主机下载文件

    scp username@serverip:/path/filename /local_path
    

    例如:

    scp john@192.168.1.100:~/Desktop/a.txt ./Desktop
    
    scp -P 258 john@192.168.1.100:~/Desktop/a.txt ./Desktop
    

    (2)上传本地文件到服务器

    scp /local_path/filename username@serverip:/path
    

    例如,

    scp -P 258 test.txt john@192.168.1.100:~/
    

    (3)从服务器下载整个目录

    scp -r username@serverip:/sever_path  /local_path
    

    例如

    scp -P 258 -r john@192.168.1.100:~/mhn ./mhn_copy
    

    (4)上传目录到服务器

    scp -r /local_dir username@serverip:/server_dir
    

    例如,

    scp -P 258 -r /Study john@192.168.1.100:~/Study_copy
    

    不需密码连接方法:利用公钥省去口令输入

    每次登录远程主机都需要输入密码是很不便捷的,如果要加速这一步骤,可以利用密钥对进行连接,主要思路是:生成一对公钥私钥,私钥在local主机上,公钥在远程服务器上,每次建立ssh连接自动检查密钥对是否匹配。

    尤其是对于GitHub这种使用ssh传输文件的系统来说,每次输入账户密码非常不便捷。

    (1)step1 生成密钥对

    ssh-keygen -t rsa #-t表示选择类型,类型为rsa1
    

    执行以后会在$HOME目录下生成一个.ssh文件夹,其中包含私钥文件id_rsa和公钥文件id_rsa.pub

    (2)复制公钥至服务器

    # 登录远程服务器
    ssh yucicheung@10.170.11.147 
    # 在服务器上创建.ssh文件夹,如果已经存在就跳过此步
    mkdir .ssh 
    # 为了保证.ssh文件夹的安全,应取消其他用户对文件夹的所有权限
    chmod 700 .ssh
    # 退出登录
    exit
    # 本地主机的公钥复制到远程服务器,作为已认证密钥
    scp /home/yucicheung/.ssh/id_rsa.pub yucicheung@10.170.44.206:/home/yucicheung/.ssh/authorized_keys
    

    在进行以上配置以后,再进行连接时,就可以免去口令(密码)的输入了。

    3 远程主机的服务器ssh使用

    在被链接主机上安装ssh

    sudo apt-get update
    
    sudo apt install openssh-server #在被连接的电脑上运行此条命令安装
    

    启动ssh:

    sudo service ssh start
    

    安装好后查看SSH是否启动:

    sudo ps -e |grep ssh
    

    或者:

    sudo netstat -tlp
    

    配置被链接主机的ssh

    (1)允许远程ROOT用户登录

    使用gedit修改配置文件/etc/ssh/sshd_config允许远程ROOT用户登录:

    sudo gedit /etc/ssh/sshd_config
    

    # Authentication:
    LoginGraceTime 120
    PermitRootLogin prohibit-password
    StrictModes yes
    

    改为

    # Authentication:
    LoginGraceTime 120
    PermitRootLogin yes
    StrictModes yes
    

    然后重启ssh服务

    sudo /etc/init.d/ssh restart 
    

    sudo service ssh restart
    

    (2)查看端口信息

    查看配置文件中/etc/ssh/sshd_config是否开启了端口(一般默认时22端口,也可以改成其他端口)

    # What ports, IPs and protocols we listen for
    Port 22
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 
    

    查看本机ssh相关的端口:

    sudo netstat -nlap|grep sshd|grep tcp|grep LISTEN
    

    当然还有一种情况是端口没打开(一般没这这种情况,通过配置文件都可以开启端口),可以靠udw命令开启

    (3)查看主机ip

    ifconfig #查询ip地址,在返回信息中找到自己的ip地址
    
  • 相关阅读:
    自己写的一个校验IP、IP掩码、IP段的方法
    JS 数组方法splice的源码探究
    element ui 的时间选择控件
    浅谈闭包
    tensorFlow-深度学习训练并行模式
    tensorflow-TensorBoard
    tensorflow-RNN和LSTM
    tensorflow-TFRecord报错ValueError: Protocol message Feature has no "feature" field.
    tensorflow-mnist报错[WinError 10060] 由于连接方在一段时间后没有正确答复解决办法
    旋转图片,增加神经网络的准确率
  • 原文地址:https://www.cnblogs.com/sxy370921/p/11674116.html
Copyright © 2011-2022 走看看