什么是ssh
简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。这里只讨论SSH在Linux Shell中的用法。
ssh的安装
SSH分客户端openssh-client和openssh-server
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。
Ubuntu默认已经安装了ssh client,需要手动安装ssh server
ssh-server介绍
ssh-server在实际操作中没有什么需要关心的,只需要关注它的一个核心配置文件即可,文件位于/etc/ssh/sshd_cofig
ssh-server默认会有一个端口号22供客户端连接使用
一般只需要关注以下几个配置即可
- UseDNS no 是否开启反向解析:ip-->域名
- GSSAPIAuthentication noGSS认证功能关闭
- Port端口号,默认是22,端口范围是1-65535 推荐10000以上的端口
- PermintRootLogin禁用root用户 远程 登录权限. 默认是yes(可以让root远程登录) (ubt系统中默认是no) 使用建议:先添加普通用户配置sudo权限,然后再禁用
- PasswordAuthentication yes 远程连接是否开启密码登录/验证功能. 未来安全要求严格可以关闭,关闭前先配置好密钥认证.
ssh-client介绍
ssh-client也有一个配置文件/etc/ssh/ssh_config,但是一般实际操作中不需要改动,客户端有两个命令,ssh和scp需要特别关注一下
scp
scp命令主要用于传输文件,在实际生产中使用的还是比较多的
语法:scp [选项] 文件/目录 用户名@ip:路径
选项说明:- -r 递归传输
- -p 保持属性不变
- -P(大写) 指定端口号
复制代码 案例:传输/etc/hostname到10.0.0.41的/data目录下- scp -r -P 22 /etc/hostname root@10.0.0.41:/data
复制代码 ssh
ssh命令主要用于连接远程服务器,或者连接远程服务器时执行命令或脚本
语法:ssh [选项] 用户名@ip [命令]
选项说明
- 案例一:远程连接10.0.0.41服务器的22端口
- 案例二:远程连接10.0.0.41服务器的22端口并执行whoami命令
- ssh -p 22 root@10.0.0.41 whoami
复制代码
- 案例三:远程连接10.0.0.41服务器的22端口并执行多条命令
- ssh -p 22 root@10.0.0.41 "whoami && hostname && hostname -I"
- ssh -p 22 root@10.0.0.41 "whoami ; hostname ; hostname -I"
复制代码 注:
- &&并且,命令行中表示前一个命令执行成功再执行后面的命令.
- ; 分号,分隔命令.相当于是1行的结束.
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |