前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SSH 技巧

SSH 技巧

作者头像
mafeifan
发布2018-10-09 11:55:36
8620
发布2018-10-09 11:55:36
举报
文章被收录于专栏:finleyMa

SSH 是 Linux 下进行远程连接的基本工具。 一般情况下我们可以通过 ssh username@xxx.xxx.xxx.xxx 登录远程服务器,如果要管理多台服务器,这样太长了。 可以在家目录的 .ssh 中新建config文件,设置别名。 比如我的个人云主机,

代码语言:javascript
复制
# Host 可跟多个表示别名
Host cloud  alias
    HostName 120.163.xxx.323
    User ubuntu
    Port 4722
    # 私钥路径
    IdentityFile ~/.ssh/id_rsa

这样执行 ssh cloudssh alias 就无密码登录云主机了

1. 执行远程命令

ssh cloud "df -h"

image.png

2. 用分号分隔多个命令,用引号引起来

ssh cloud "df -h; ps;"

3. 遇到需要交互的命令,加 -t 参数
代码语言:javascript
复制
$ ssh -t cloud top

比如 sudo 开头的可能需要用户输入密码,需要 TTY。 添加 -t 参数后,ssh 会保持登录状态,直到你退出需要交互的命令。

image.png

4. 执行多行命令
代码语言:javascript
复制
$ ssh cloud "echo 'haha'
> pwd
> ls "

可以用单引号或双引号开头,然后写上几行命令,最后再用相同的引号来结束。 > 开头的就是输入下一行命令 如果需要在命令中使用引号,可以混合使用单双引号。

image.png

5. 在命令中使用变量

在远程服务器执行 ls node,本地定义变量a,传入到命令中。达到一样的效果。 在下图的命令中为 bash 指定了 -c 参数

代码语言:javascript
复制
$ a=node
$ ssh cloud bash -c " '
> ls $a
> ' "

image.png

6. 执行本地脚本

本地创建demo.sh,内容是:ls node 运行 ssh cloud < demo.sh 通过重定向 stdin,本地的脚本 demo.sh 在远程服务器上被执行。

image.png

7. 为脚本传入参数

修改 demo.sh 内容为:

代码语言:javascript
复制
ls node
echo $0
echo $1
echo $2

执行 ssh cloud 'bash -s'< demo.sh aa bb cc bash 就是 $0 第一个参数。

image.png

参考:

http://www.openssh.com/ https://www.cnblogs.com/sparkdev/p/6842805.html https://www.zcfy.cc/article/top-20-openssh-server-best-security-practices

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.09.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 执行远程命令
  • 2. 用分号分隔多个命令,用引号引起来
  • 3. 遇到需要交互的命令,加 -t 参数
  • 4. 执行多行命令
  • 5. 在命令中使用变量
  • 6. 执行本地脚本
  • 7. 为脚本传入参数
  • 参考:
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档