GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで特定のディレクトリにSSHで接続する方法

リモートサーバーにSSHで接続し、すぐにディレクトリにcdしたいという状況になったことはありますか?はい?さて、あなたは正しい軌道に乗っています!この簡単なチュートリアルでは、Linux上の特定のディレクトリに直接SSHで接続する方法について説明します。意味-SSH経由でリモートシステムにログインすると、特定のディレクトリに自動的に変更できます。特定のディレクトリにSSHで接続するだけでなく、SSH経由でリモートサーバーに接続した直後に任意のコマンドを実行することもできます。

リモートLinuxシステムの特定のディレクトリへのSSH

この方法を知る前は、通常、次のコマンドを使用してリモートリモートシステムにSSHで接続していました。

$ ssh [email protected]

次に、次のようなディレクトリにCDを挿入します。

$ cd <some-directory>

それが私がリモートシステムのディレクトリに変更する方法です。もう違います! 2つの別々のコマンドを使用する必要はありません!!

たとえば、次のコマンドを使用すると、リモートシステム(192.168.225.52)にSSHで接続し、「dir1」というディレクトリに自動的にcdできます。

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash'

上記のコマンドは、リモートシステム(192.168.225.52)にSSHで接続し、すぐに'/ home / ostechnix / dir1'という名前のディレクトリにcdします。 ディレクトリを作成し、最後にリモートシステムのシェルに移動します。

ここで、 -t フラグは、対話型シェルに必要な疑似端末の割り当てを強制するために使用されます。このフラグを指定しない場合、プロンプトは表示されません。また、 "bash"を追加しない場合も 上記のコマンドを終了すると、接続が終了し、ローカルシステムに制御が戻ります。

上記のコマンドの出力例は次のとおりです。

特定のディレクトリにSSHで接続するためのコマンドの例をさらにいくつか示します。

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash --login'

ここで、-ログイン フラグは「bash」をログインシェルとして設定します。

または、

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; exec bash'

または、

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec bash -l'

ここで、 -l <​​/ strong> フラグは「bash」をログインシェルとして設定します。

上記の例では、 bashについて明示的に言及しました。 ログインシェルとして。なぜなら、Bashが私のリモートシステムのデフォルトシェルであることを私は知っているからです。リモートシステムのシェルタイプがわからない場合は、次のコマンドを使用します。

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec $SHELL'

リモートシステムにディレクトリを作成し、自動的にSSHで接続します

リモートシステムに存在しないディレクトリにSSHで接続しようとすると、認証が成功すると次のメッセージが表示されます。

bash: line 0: cd: /home/ostechnix/dir2: No such file or directory

ご覧のとおり、「dir2」という名前のディレクトリはリモートシステムでは使用できません。リモートシステムにディレクトリを作成し、SSH経由で自動的にそのディレクトリにcdする場合は、ローカルシステムから次のコマンドを実行するだけです。

$ ssh -t [email protected] 'mkdir -p dir2 ; cd /home/ostechnix/dir2 ; bash --login'

変更を永続的にする

上記のコマンドを毎回手動で入力したくない場合は、リモートシステムの〜/ .bashrc 上のSSHサーバーに接続した後に実行するコマンドを追加するだけです。 または〜/ .bash_profile または〜/ .profile ファイル。

bashrcを編集します ファイル:

 $ nano ~/.bashrc

コマンドを1つずつ追加します。私の場合、次の行を追加しています:

cd /home/ostechnix/dir1 >& /dev/null

この行をリモートシステムの.bash_profileに追加する必要があることに注意してください または.bashrc または.profile ローカルシステムではなく、ファイル。 Ctrl + Oを押します Enterキーを押して保存し、 Ctrl + Xを押します。 ファイルを閉じます。

最後に、次のコマンドを実行して変更を更新します。

 $ source ~/.bashrc

これ以降、(SSHまたは直接のいずれかで)ログインするたびに、cdコマンドが実行され、「/ home / ostechnix/dir1」ディレクトリ内に自動的に移動します。

リモートLinuxシステムでSSH経由でコマンドを実行する

すでに述べたように、このトリックは、リモートシステムに接続した後にディレクトリにcdするだけではありません。このメソッドを使用して、他のコマンドを実行することもできます。

たとえば、次のコマンドを実行すると、「/ home / ostechnix / dir1」ディレクトリに移動し、「uname-a」コマンドを実行します。

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && uname -a && exec $SHELL'

リモートシステムでSSHを介してコマンドを実行するその他の例は、次のガイドに記載されています。

  • SSH経由でリモートLinuxシステムでコマンドを実行

これがお役に立てば幸いです。

関連記事:

  • 1つのコマンドでcdとlsを実行する方法
  • 1つのコマンドでcpまたはmvとcdを実行する方法
  • Linuxで特定のユーザーまたはグループへのSSHアクセスを許可または拒否する

Linux
  1. LinuxでSSHポートを変更する方法

  2. Linuxでディレクトリの名前を変更する方法

  3. 特定のディレクトリにSSHで接続する方法は?

  1. Linuxでディレクトリを削除する方法

  2. Linuxでディレクトリをgzipで圧縮する方法

  3. Linuxでディレクトリサイズを取得する方法

  1. SSH経由でリモートシステムでLinuxコマンドを実行する方法

  2. LinuxでSSHエイリアスを作成する方法

  3. LinuxでSSHを使用してX11転送を構成する方法