SSH基本用法

2019-06-02  本文已影响0人  是什么样的心情

序言

在玩github时,我们一般都会用到SSH,它的全称叫Secure Shell,通过SSH我们可以远程登录到Linux服务器,因为在传输过程中进行了加密处理,其安全性比Telnet和Pop要高。
本文默认你在本地机器上安装了SSH client,在远程机器上安装了SSH server。行首local提示符代表client端,remote代表server端。

一. 简单用法

ssh user@remote -p port

执行完这条指令后,ssh会要求你输入密码,输入密码后即会登录到远程服务器

二. 使用 SSH 钥匙登录

如果我们经常需要登录到远程服务器,然而每次都要输入密码,这样会比较烦。在这里我们可以配置SSH钥匙来实现免密码登录。

ssh-keygen

在客户端执行这条命令可生成SSH钥匙,一路按回车。在~/.ssh/id_rsa.pub文件里存放了公匙,在~/.ssh/id_rsa文件里存放了密匙。现在我们可以把公匙文件里的代码追加到远程服务器里的.ssh/authorized_keys文件里。完成后ssh登录远程服务器就不需要密码了。
生成密匙后,我们也可以用ssh-copy-id user@remote -p port命令来放置公匙到远程服务器中,原理和上面是一个意思。
PS:想想我们用git时不也经常是用SSH钥匙来登录github的吗。

三. 配置别名

虽然我们配置了密匙不要输入密码了,但是我还是要输入ssh user@remote -p port命令的啊,毕竟服务器多了不容易记啊。幸好我们可以配置别名,在~/.ssh/config文件里追加一下内容

    Host centos
        HostName remote
        User user
        Port port

保存之后,我们就可以直接使用ssh centos来登录。如果没有config文件的话,我们可以新建一个。

四. SCP命令

不同的Linux之间copy文件常用有3种方法:

scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令:

scp /home/daisy/full.tar.gz   user@remote:/home/root

然后会提示你输入另外那台远程主机的user的登录密码,接着就开始copy了。
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单:

scp user@remote:/home/root/full.tar.gz  home/daisy/full.tar.gz

如果是复制的文件夹的话添加一个-r选项。
几个用的参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .

五. 使程序在后台运行

如果我们退出了SSH程序,Linux会马上kill掉我们的程序。如果我们有长时间运行的程序,而我们的SSH程序又要关掉怎么办呢,如何保持我们的程序一直进行下去呢。tmux解决了我们这个问题,tmux是一个会话管理程序,他会保持程序一直运行着。安装完tmux后执行

remote$ tmux

这样我们就进入到了 tmux管理的会话中,之后你再运行任何东西都不会因为你退出 ssh而被杀死。要暂时离开这个会话,可以先按下 ctrl+b再按下 d。要恢复之前的会话,只需要执行

remote$ tmux attach

tmux还能管理多个窗口、水平竖直切分、复制粘贴等等,我们可以看看tmux速成教程来入门。

六. putty

在windows系统上,我们可以用putty作为SSH client。putty配套的工具都很有用。


参考资料

SSH 基本用法
scp命令
SSH 的详细使用方法

上一篇下一篇

猜你喜欢

热点阅读