GNU/Linux >> Tutoriels Linux >  >> Linux

Empêcher la connexion ssh d'imprimer motd depuis le client ?

Solution 1 :

Je ne sais pas pourquoi vous avez une aversion pour le faire correctement - soit sur le serveur à la

PrintMotd no
PrintLastLog no

et

#/etc/pam.d/ssh
# Print the message of the day upon successful login.
# session    optional     pam_motd.so

Ou en ajoutant ~/.hushlogin pour chaque utilisateur.

Astuce, pour ~/.hushlogin, ajoutez-le à /etc/skel afin que les nouveaux répertoires personnels des utilisateurs soient créés avec le fichier.

Mise à jour :

Sans plus d'informations sur votre tâche cron de sauvegarde, ma seule autre suggestion est de rediriger la sortie de la commande vers un fichier (ou de laisser cron la capturer dans un e-mail) et la sortie de la session ssh vers /dev/null. Quelque chose comme :

0 0 * * * ssh backuphost "backup_script_that_writes_to_a_log" >/dev/null

Ou

0 0 * * * ssh backuphost "backup_command 2>&1" >/dev/null

Je devrais jouer un peu avec les commandes, mais cela devrait vous aider à démarrer.

Solution 2 :

Si vous voulez cela par utilisateur, faites simplement un touch ~/.hushlogin et vous êtes prêt avec OpenSSH.

Mettre à jour :Comme indiqué ailleurs, pam_motd peut être configuré pour ne pas utiliser de .hushlogin par utilisateur; vérifier /etc/login.defs pour HUSHLOGIN_FILE . Il peut être configuré pour que tous les utilisateurs soient répertoriés dans /etc/hushlogins ou similaire.

Solution 3 :

@note Tous les exemples supposent que vous avez défini une variable connectionString avec quelque chose comme [email protected] .

Comment j'ai trouvé la solution

Utilisation de ssh -T devrait fonctionner pour des commandes simples. Par exemple, cela n'imprime aucune information supplémentaire :

ssh -T $connectionString "echo 'blah'"

Le problème survient lorsque vous essayez d'utiliser here-doc pour exécuter de nombreuses commandes. Par exemple - ci-dessous ne fonctionnera PAS - il fera écho au message du jour (MoTD) et pourrait également vous montrer "stdin :n'est pas un tty".

somethingLocal='something local'
ssh -T $connectionString <<EOC
    echo 'blah'
    echo "blah $somethingLocal"
EOC

Pour contourner le problème, vous devez d'abord enregistrer les commandes dans une variable locale et les envoyer au serveur distant.

somethingLocal='something local'
read -r -d '' commands <<EOC
    echo 'blah'
    echo "blah $somethingLocal"
EOC
ssh -T $connectionString "$commands"

Mais c'est compliqué...

Solution finale

Créez une fonction universelle (notez qu'elle peut prendre une chaîne ou HEREDOC comme commandes).

function silentSsh {
    local connectionString="$1"
    local commands="$2"
    if [ -z "$commands" ]; then
        commands=`cat`
    fi
    ssh -T $connectionString "$commands"
}

Exemples

Utilisez ceci comme ceci :

somethingLocal='something local'
silentSsh $connectionString <<EOC
    echo 'blah'
    echo "blah $somethingLocal"
EOC

Ou comme ceci :

silentSsh $connectionString "echo 'blah'"

Ou comme ceci :

silentSsh $connectionString <<'EOC'
    echo 'blah'
    somethingRemote=`echo 'whatever'`
    echo "blah $somethingRemote"
EOC

Ou même comme ça :

silentSsh $connectionString < getlines.sh

Solution 4 :

Que diriez-vous de ce hack?;-P

ssh -t [email protected] '/bin/bash'

Ce qui suit n'est pas valide :

Passer -T à ssh pour désactiver l'allocation tty :

ssh -T machineName 'echo foo'

Solution 5 :

De quel système d'exploitation s'agit-il ? Sur certains systèmes (comme ubuntu), le motd n'est pas imprimé par le serveur ssh (PrintMotd dans /etc/ssh/sshd_config), mais par pam avec pam_motd. Si tel est le cas, vous ne pourrez probablement pas le contrôler depuis le client.


Linux
  1. Empêcher la connexion NFS interrompue de geler le système client ?

  2. Ssh – Comment accélérer la connexion Ssh trop lente ?

  3. Comment détecter si le shell est contrôlé depuis Ssh ?

  4. Linux - Comment connecter l'utilisateur à Tty à partir de Ssh ?

  5. Comment empêcher Orca de démarrer lors de la connexion ?

Transfert de port Ssh pour accéder à la machine domestique depuis n'importe où ?

Linux :comment obtenir tous les journaux de connexion du système ?

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Autoriser la connexion root ssh avec authentification par clé publique uniquement

Obtenez les 4 derniers caractères de la sortie de la sortie standard

La valeur de hachage MD5 est différente de Bash et PHP