当前位置:   article > 正文

远程登陆之SSH的简单用法及命令

远程登陆之SSH的简单用法及命令


SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。OpenSSH是一种免费开源实现。
OpenSSH是用于使用SSH协议进行远程登录的主要连接工具。
如果要在Windows中使用SSH,可以使用PuTTY。

请务必先清楚两个概念:

客户端:本机(想要连远程主机);(客户机)
服务器:远程主机

SSH的安装

SSH分为客户端 openssh-client服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh
  • 1

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-client 
sudo apt-get install openssh-server
  • 1
  • 2

启动服务器的SSH服务

确认ssh-server是否已经启动了:

ps -e | grep ssh
  • 1

sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

sudo /etc/init.d/ssh start 
  • 1

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务
  • 1
  • 2

SSH远程登陆

口令登陆

通过 SSH Client 我们可以连接到运行了 SSH Server 的远程机器上。SSH Client 的基本使用方法是:ssh user@remote -p port

  • user远程机器上的用户名,如果不指定的话默认为当前用户

  • remote 是远程机器的地址,可以是 IP,域名,或者是后面会提到的别名

  • port 是 SSH Server 监听的端口,如果不指定的话就为默认值 22

如果需要调用图形界面程序可以使用 -X 选项

ssh -X kkvb@192.168.40.129
  • 1

如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。

ssh 192.168.40.129
  • 1

客户机必须要知道服务器的ip地址可以在服务器端电脑上利用**ifconfig**** 命令查看该机的ip地址**

比较可靠的方式是使用ip命令:ip addr show
它将同时显示IPv4和IPv6地址:

成功登陆后,命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行

可以通过 Ctrl+D 或者** exit** 命令退出远程登录。

**关于Windows下使用PuTTY SSH,看这里 **PuTTY中文教程

公钥登陆

SSH还提供了公钥登录,可以省去输入密码的步骤。

执行

ssh-keygen
  • 1

即可生成 SSH 钥匙,一路回车即可。生成的公钥保存在 ~/.ssh/id_rsa.pub中,私钥放在 ~/.ssh/id_rsa中。

接下来,要让远程机器记住我们的公钥。最简单的方法是使用命令:

ssh-copy-id user@remote
  • 1

它将公钥复制到远程主机的~/ .ssh/authorized_key 文件中。

至此,以后再登陆远程主机便可不用再输入密码。

配置别名

~/.ssh/config 里面追加以下内容:

# 注意是在客户端中添加,不是服务器!
# 别忘了把remote和user换成自己服务器对应的地址和用户名
Host lab
    HostName remote
    User user
    Port port 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

保存之后,即可用ssh lab 代替ssh user@remote -p port 进行登陆。

传输文件

客户端与服务器之间可以通过scp传输文件:

# 把本地的 /path/to/local/file 文件传输到远程的 /path/to/remote/file
scp -P port /path/to/local/file user@remote:/path/to/remote/file

# 也可以使用别名
scp /path/to/local/file lab:/path/to/remote/file

# 把远程的 /path/to/remote/file 下载到本地的 /path/to/local/file
scp lab:/path/to/remote/file /path/to/local/file

# 远程的默认路径是家目录
# 下面命令把当前目录下的 file 传到远程的 ~/dir/file
scp file lab:dir/file

# 加上 -r 命令可以传送文件夹
# 下面命令可以把当前目录下的 dir 文件夹传到远程的家目录下
scp -r dir lab:

# 别忘了 . 可以用来指代当前目录
# 下面命令可以把远程的 ~/dir 目录下载到当前目录里面
scp -r lab:dir/ .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

scp命令的一些参数

  • -1 强制scp命令使用协议ssh1

  • -2 强制scp命令使用协议ssh2

  • -4 强制scp命令只使用IPv4寻址

  • -6 强制scp命令只使用IPv6寻址

  • -B 使用批处理模式(传输过程中不询问传输口令或短语)

  • -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

  • -p 留原文件的修改时间,访问时间和访问权限。

  • -q 不显示传输进度条。

  • -r 递归复制整个目录。

  • -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

  • -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

  • -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

  • -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

  • -l limit 限定用户所能使用的带宽,以Kbit/s为单位。

  • -o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,

  • -P port 注意是大写的P, port是指定数据传输用到的端口号

  • -S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/205492
推荐阅读
相关标签
  

闽ICP备14008679号