skip to content
barorin&

SSH接続したときに自動でbashを起動する方法

/ 3 min read

Table of Contents

はじめに

リモートサーバーにSSHでログインしたとき、意図せずshdashが起動してしまい、「いつも使っているbashをデフォルトにしたい」と思ったことはないでしょうか。
ログイン直後はclaudepythonなどのコマンドが通らないのに、bashと打ってからは使える、といった現象も典型的な症状です。

本記事では、SSH接続時にbashを起動する代表的な方法を3つ紹介します。

方法

1-1. 現在のログインシェルを確認する

まずは、いま自分のログインシェルが何になっているか確認します。

Terminal window
echo "$SHELL"
getent passwd "$USER"

getent passwd "$USER" の出力の末尾フィールド(例: /bin/sh, /bin/dash, /bin/bash)が、現在設定されているログインシェルです。

1-2. bashのパスを確認する

次に、bashがどこにインストールされているか確認します。

/bin/bash
which bash

多くのLinuxディストリビューションでは/bin/bashですが、自前でインストールした場合などは別パスになることがあります。

1-2. chshでログインシェルをbashに変更する

一般ユーザー権限でも、chshコマンドで自分のログインシェルを変更できます。

Terminal window
chsh -s /bin/bash
# または、whichの結果をそのまま使う
chsh -s "$(which bash)"

実行するとパスワードを求められるので入力し、いったんログアウトしてから再度SSHでログインします。
再ログイン後に:

Terminal window
echo "$SHELL"

と打って、/bin/bash になっていれば成功です。

2. .bash_profileや.bashrcでbashを起動する方法

ついでに、起動時に~/.bashrcも読み込むようにしておきましょう。

Terminal window
$ vim ~/.bash_profile
# 以下を追加
# if [ -f ~/.bashrc ]; then
# . ~/.bashrc
# fi