linux中ssh如何远程执行一条命令,而且不登录远程服务器?

ssh user@地址 /bin/ls //类似给我返回ls命令的结果,而不登录远程服务器
类似linux里面 su 命令加-c参数,切换用户执行一条命令,而不用切换到那个用户去

用ssh命令 用户名@地址 密码 命令 ? //能实现吗?还是有别的命令?

一 SSH命令使用技巧

- 远程登录

ssh [email protected]

- 远程执行

ssh [email protected] 'command ...'

- 远程复制

scp [email protected]:/remote/path /local/path

scp /local/path [email protected]:/remote/path

- X forward

ssh -X [email protected]

xcommand ...

- Tunnel / Portforward

ssh -L 1234:remote.machine:4321 [email protected]

ssh -R 1234:local.machine:4321 [email protected]

ssh -L 1234:other.machine:4321 [email protected]

二, 实作

1) 禁止 root 登录

# vi /etc/ssh/sshd_config

PermitRootLogin no

2) 废除密码登录, 强迫使用 RSA 验证(假设 ssh 账户为 user1 )

# vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no

# service sshd restart

# su - user1

$ mkdir ~/.ssh 2>/dev/null

$ chmod 700 ~/.ssh

$ touch ~/.ssh/authorized_keys

$ chmod 644 ~/.ssh/authorized_keys

登入 端:

$ ssh-keygen -t rsa

(按三下 enter 完成﹔不需设密码,除非您会用 ssh-agent 。)

$ scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.pub

(若是 windows client, 可用 puttygen.exe 产生 public key,

然后复制到 server 端后修改之, 使其内容成为单一一行.)

回到 server 端:

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

$ rm ~/id_rsa.pub

$ exit

3) 限制 su / sudo 名单:

# vi /etc/pam.d/su

auth required /lib/security/$ISA/pam_wheel.so use_uid

# visudo

%wheel ALL=(ALL) ALL

# gpasswd -a user1 wheel

4) 限制 ssh 使用者名单

# vi /etc/pam.d/sshd

auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users ōnerr=fail

# echo user1 >> /etc/ssh_users

温馨提示:答案为网友推荐,仅供参考
相似回答