サイズ: 1970
コメント:
|
← 2022-04-12 14:41:46時点のリビジョン3 ⇥
サイズ: 2020
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
## page was renamed from rand0m/login-shell-motd |
~/.ssh/configでRemoteCommandすると/etc/motdが表示されない話
解決方法
chsh
ができる場合,chsh
をする- あなたがMMAに所属している場合,次のリンクを参照して解決できる(非ログインユーザーには非表示)
https://wiki.mma.club.uec.ac.jp/rand0m/login-shell-motd/MMA chsh
が出来ない場合,下の迂回方法 をとる
症状:
chsh
が出来ない
以下の場合,/etc/motd
が表示されないssh remote@example.com -t "zsh --login"
としたとき~/.ssh/config
が次のように設定されている場合
(中略)
RequestTTY yes
RemoteCommand zsh
以下の場合,/etc/motd
が表示される
- ssh remote@example.com
迂回方法
~/.zshrc
にcat /etc/motd
を追加
cat /etc/motd
(これはエレガントな解決方法ではないので,良くない)
もしかして理由:
もしかして,-t "zsh --login"
がcommandとして認識されている(?)
https://github.com/openssh/openssh-portable/blob/master/session.c#L812
/*
* Check for quiet login, either .hushlogin or command given.
*/
int
check_quietlogin(Session *s, const char *command)
{
char buf[256];
struct passwd *pw = s->pw;
struct stat st;
/* Return 1 if .hushlogin exists or a command given. */
if (command != NULL)
return 1;
snprintf(buf, sizeof(buf), "%.200s/.hushlogin", pw->pw_dir);
#ifdef HAVE_LOGIN_CAP
if (login_getcapbool(lc, "hushlogin", 0) || stat(buf, &st) >= 0)
return 1;
#else
if (stat(buf, &st) >= 0)
return 1;
#endif
return 0;
}