я прочел Остановить вход ssh для печати motd с клиента?, однако моя ситуация немного другая:
ssh -o "PrintBanner=No" someserver
).Любая идея?
Eсть LogLevel
вариант:
Он заглушает баннер, но вы все равно можете получать ошибки:
$ ssh -o LogLevel=error localhost
Permission denied (publickey).
Я протестировал это, думаю, вы можете использовать -q
в команде ssh. Параметр -q означал Бесшумный режим. Это приводит к подавлению большинства предупреждающих и диагностических сообщений, например
ssh -t '$node2' 'sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2
или
ssh -t -q '$node2' 'sudo cat xxxx' |grep xxx" >/root/node2
Надеюсь, это поможет другим
Обновите ~ / .ssh / config следующим образом, чтобы подавить баннер
Host *
LogLevel error
Похоже, ты ищешь -q:
Бесшумный режим. Вызывает подавление большинства предупреждающих и диагностических сообщений.
ssh user@host
*------------------------------------------------------------------------------*
| banner: blah |
*------------------------------------------------------------------------------*
Last login: Mon Oct 2 16:40:01 2017 from ipAddress
$
С участием -q
ssh -q user@host
Last login: Mon Oct 2 16:40:30 2017 from ipAddress
$
Красиво и тихо. Баннер все еще настроен, но вас это не беспокоит.
С другой стороны: не используйте баннеры. Лучше ничего не подтверждать и не опровергать. Это не поможет вам с людьми, о которых вы не беспокоились, и люди, о которых вы беспокоитесь, будут смеяться, когда они проработают это. ;-)
У вас должна быть возможность установить другой Banner
(ни к чему) внутри Match
блок.
Например:
Match Address 192.0.2.0/24
Banner none
Но это нужно сделать на стороне сервера, исходя из конкретных условий. Вы не можете сделать это из клиент сторона.
Вы не можете. (По крайней мере, не со стандартным OpenSSH)
Баннер сервера отправляется сервером до аутентификации. Обычно это делается для того, чтобы содержать юридический отказ от ответственности или подобное сообщение типа «Если вы не авторизованы, отключитесь СЕЙЧАС» или другие важные вещи, которые вы не хотите, чтобы удаленный пользователь мог подавлять / игнорировать.
Если вы действительно хотите избавиться от этого, вам нужно будет взломать и скомпилировать собственную настроенную версию клиента SSH.
Для меня, -o LogLevel=error
было лучше чем -q
, поскольку последний подавляет важную информацию об ошибке (которую затем можно получить только с помощью кода выхода).
Сравните это (без вариантов):
[root@myserver804 myuser1]# ssh targetserver1; echo "exit code=$?"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:1735
RSA host key for targetserver1 has changed and you have requested strict checking.
Host key verification failed.
exit code=255
с этим (тихо)
[root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?"
exit code=255
с этим (только ошибки журнала)
[root@myserver804 myuser1]# ssh -o LogLevel=error targetserver1; echo "exit code=$?"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:1735
RSA host key for targetserver1 has changed and you have requested strict checking.
Host key verification failed.
exit code=255
Итак, вывод - если вас все еще интересуют соответствующие ошибки, используйте -o LogLevel=error
Ни -q
или -oLogLevel=error
работает.
Что работает, так это подавлять STDERR
ssh hostname command 2>/dev/null
Обратной стороной, однако, является то, что STDERR подавление применяется ко всей команде, а не только к программе SSH.
Просто вызовите оболочку, которая должна подавить баннер.
ssh you@someplace.com /bin/bash
Обратите внимание, по крайней мере, для меня мой $ PS1 не устанавливается, поэтому похоже, что он завис. Мне пришлось ввести пару команд, чтобы убедиться, что он работает.
Для меня -q помогло, и я все еще мог работать с выводом, сохраненным в файл.
ssh -q root @ server28 "ls -alF / dr_mksysb | egrep -v \" total | lost + found | ./ | ../ \ "| awk '{print \ $ NF}' | sed 's /.\$ // g '"> $ {basedir} /28.list