#yyds干货盘点#shell如何进行远程ssh
Posted 峰啊疯了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#shell如何进行远程ssh相关的知识,希望对你有一定的参考价值。
1.ssh命令详解
1.1使用详解
ssh --help
man ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
1.2参数解释
-l 指定登入用户
-p 设置端口号
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入。如果在后台运行ssh的话(-f选项),就需要这个选项。
-N 不执行远程命令,只做端口转发
-q 安静模式,忽略一切对话和错误提示
-T 禁用伪终端配置
-t (tty)为远程系统上的ssh进程分配一个伪tty(终端)。如果没有使用这个选项,当你在远程系统上运行某条命令的时候,ssh不会为该进程分配tty(终端)。相反,ssh将会把远端进程的标准输入和标准输出附加到ssh会话上去,这通常就是你所希望的(但并非总是如此)。这个选项将强制ssh在远端系统上分配tty,这样那些需要tty的程序就能够正常运行。
-v verbose)显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非常有用。
2.简单的ssh
ssh -p $port $user@$p cmd
$port : ssh连接端口号
$user: ssh连接用户名
$ip:ssh连接的ip地址
cmd:远程服务器需要执行的操作
对于这种ssh,命令一般只有一条,如要手动鉴权,输入密钥,端口默认22
3.复杂的ssh
SHELL=`ssh root@192.168.33.25 << remotessh
cd /home
rm -rf token.txt
touch token.txt
cd /home/1.8/keadm-v1.8.0-linux-amd64/keadm
./keadm gettoken >> /home/token.txt
cat /home/token.txt
exit
remotessh `
echo -e "========================打印token======================\\n"
echo $SHELL
3.1 shell详解
远程执行的内容在“<< remotessh” 至“ remotessh”之间,在远程机器上的操作就位于其中,注意的点:
- << remotessh,ssh后直到遇到remotessh这样的内容结束,remotessh可以随便修改成其他形式。
- 重定向目的在于不显示远程的输出了
- 在结束前,加exit退出远程节点
一般这种都需要提前做好ssh免密登录
3.2 免密登录
设置免密
ssh-copy-id root@192.168.103.49
如果/root/.ssh/id_rsa下密钥key失效需要重新生成
ssh-keygen
清除免密
ssh-keygen -R root@192.168.103.49
以上是关于#yyds干货盘点#shell如何进行远程ssh的主要内容,如果未能解决你的问题,请参考以下文章