設定 - SSH

提供:MochiuWiki : SUSE, EC, PCB
2023年2月3日 (金) 07:06時点におけるWiki (トーク | 投稿記録)による版 (→‎OpenSSHの設定項目)
ナビゲーションに移動 検索に移動

概要

SSHサーバを構成し、リモート端末からサーバに接続して操作できるようにする。
SSHサーバは、CentOSをMinimal Installした場合やopenSUSEを最小インストールした場合でも、標準でOpenSSHがインストールされるため、追加インストールする必要はない。


OpenSSHのインストール

パッケージ管理システムからインストール

sudo zypper install openssh openssh-server


ソースコードからインストール

OpenSSHのビルドに必要なライブラリをインストールする。

sudo zypper install autoconf make libcryptopp-devel libfido2-devel ldns-devel libadns-devel udns-devel zlib-devel \
                    libopenssl-devel libopenssl-1_1-devel pam-devel libedit-devel krb5-devel python-devel python3-devel python3-ldns


OpenSSHの公式Webサイトにアクセスして、ソースコードをダウンロードする。


ダウンロードしたファイルを解凍する。

tar xf openssh-<バージョン>.tar.gz
cd openssh-<バージョン>


OpenSSHをビルドおよびインストールする。
もし、"failed to map segment from shared object: Permission denied"とエラーメッセージが出力される場合、SELinuxを無効にする必要がある。

# LDNSライブラリをソースコードからインストールしている場合
export LD_LIBRARY_PATH="/<OpenSSHのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/<OpenSSHのインストールディレクトリ>/lib64/pkgconfig:$PKG_CONFIG_PATH:(pkg-config --variable pc_path pkg-config)"

autoreconf -i
mkdir build && build
../configure --prefix=<OpenSSHのインストールディレクトリ> \
             --sbindir=/<OpenSSHのインストールディレクトリ>/sbin \
             --libexecdir=/<OpenSSHのインストールディレクトリ>/libexec \
             --sysconfdir=/<OpenSSHのインストールディレクトリ>/etc/ssh \
             --with-pid-dir=/<OpenSSHのインストールディレクトリ>/var \
             --with-privsep-path=/<OpenSSHのインストールディレクトリ>/var/empty \
             --with-ssl-engine --with-pam --with-md5-passwords \
             --with-libedit --with-kerberos5 --with-ldns --with-tcp-wrappers
make -j $(nproc)
make install


もし、最新のLDNSライブラリが必要な場合は、ソースコードからインストールする。

  1. LDNSのビルドに必要なライブラリをインストールする。
    sudo zypper install make libtool libpcap-devel python-devel python3-devel python3-ldns

  2. LDNSの公式WebサイトまたはGithubにアクセスして、ソースコードをダウンロードする。
  3. ダウンロードしたファイルを解凍する。
    tar xf ldns-<バージョン>.tar.gz
    cd ldns-<バージョン>

  4. LDNSをビルドおよびインストールする。
    mkdir build && cd build
    ../configure --prefix=<OpenSSHのインストールディレクトリ> --with-examples --with-drill --with-pyldns
    make -j $(nproc)
    make install



OpenSSHの設定ファイル

OpenSSHの主な設定ファイルは、以下に示す2つのファイルである。

  • /etc/ssh/sshd_config
    SSH(SSHサーバ)の設定ファイル
  • /etc/ssh/ssh_config
    システム共通のSSH(SSHクライアント)の設定ファイル
  • ~/.ssh/config
    各ユーザごとのSSH(SSHクライアント)の設定ファイル
    ~/.ssh/configファイルの設定が優先される。



OpenSSHの設定項目

OpenSSH 7.8p1以降では、許可される最小のRSA鍵のサイズが1024ビットになった。
なお、OpenSSH 8.0p1以降では、デフォルトは3072[bit]である。

項目 説明
Port ポート番号

デフォルトは、22
sshdが使用するポート番号
AddressFamily any
inet
inet6

デフォルトは、any
sshdをIPv4、IPv6、IPv4とIPv6の両方のいずれかで有効にする。
ListenAddress host
IPv4のIPアドレス または IPv4のIPアドレス:<ポート番号>
IPv6のIPアドレス または IPv6のIPアドレス:<ポート番号>

デフォルトは、以下の2つのアドレスである。
[::]:22
0.0.0.0:22
sshdが接続を受け付けるローカルアドレスを指定する。
Portが未指定の場合は、[Port]項目で指定したポート番号に対してListenする。
Protocol 1
2
1,2
sshdがサポートするSSHのプロトコルバージョン。
SSH1のみを使用する場合は1、SSH2のみを使用する場合は2、
両方使用する場合は"1,2"と設定する。

OpenSSH 7.4以降では、廃止された。
Hostkey SSHサーバに保存している秘密鍵のファイルのパス

デフォルトは、以下の3つのファイルである。
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
SSHで使用する秘密鍵が格納されているファイルのパスを指定する。
rekeylimit 第1項目: 整数値(通信データ量)またはdefault
K、M、Gのサフィックスも使用可能

第2項目: 整数値または時間(週、日、時、分、秒)またはnone
第2項目において、分で使用する場合は、5m等と記述する。(この場合は、5分)
時で使用する場合は、1h等と記述する。(この場合は、1時間)

その他、sSmMhHdDwWが使用できる。
また、これらを組み合わせて使用することもできる。(1h30m等)

デフォルトは、第1項目は0、第2項目は0
SSHは、通信を暗号化するためにホストとクライアント間でセッション鍵を交換している。
暗号化を堅牢に行うために都度鍵を変更している。

第1項目にdefaultを指定する場合、1[GB]から4[GB]の間の適切なタイミングで再生成を行う。

第2項目の0noneと等価である。
KeyRegenerationInterval 時間(秒) SSH1では、サーバ鍵を指定した間隔ごとに自動的に再生成される。
その自動的に鍵を再生成する間隔を指定する。

OpenSSH 7.x以降では、廃止された。
ServerKeyBits ビット数 SSH1で使用されるサーバ鍵のビット数。(SSH2では無効)
最小値は512で、デフォルトは1024。
なお、ServerKeyBitsが対象としている鍵は、ephemeral keyである。(生成されたホスト鍵ではない)

現在のOpenSSHでは、廃止された。
SyslogFacility ファシリティ名:
DAEMON (デーモンのログメッセージ)
USER (ユーザのログメッセージ)
AUTH (認証関連のログメッセージ)
LOCAL0 (LOCAL0〜LOCAL7は、ソフトウェア開発者が独自に定義することができるカテゴリ)
LOCAL1
LOCAL2
LOCAL3
LOCAL4
LOCAL5
LOCAL6
LOCAL7

デフォルトは、AUTH
sshdがsyslogサーバに出力するログメッセージのファシリティ(分類)を指定する。

例えば、DAEMONを指定する場合、SSHのログメッセージはsyslogの"daemon"カテゴリに分類される。

LogLevel QUIET (メッセージを出力しない)
FATAL ( 致命的なエラーのみを出力)
ERROR (致命的なエラーと重要なエラーを出力)
INFO (重要な情報と警告を出力)
VERBOSE (全ての情報を出力)
DEBUG (デバック情報を出力)
DEBUG1 (DEBUGと同等)
DEBUG2 (より高いレベルのデバッグ情報)
DEBUG3 (最も高いレベルのデバッグ情報)

デフォルトは、INFO
sshdが出力するログのログレベル(冗長レベル)を指定する。
DEBUGレベルでのログ出力は、ユーザのプライバシーを侵害するため、推奨されない。
LoginGraceTime 時間(週、日、時、分、秒)
分で使用する場合は、5m等と記述する。(この場合は、5分)
時で使用する場合は、1h等と記述する。(この場合は、1時間)

その他、sSmMhHdDwWが使用できる。
また、これらを組み合わせて使用することもできる。(1h30m等)

デフォルトは、120
ユーザが指定時間内にログインできない場合、サーバの接続を自動的に切断する。
PermitRootLogin yes
no
without-password
forced-commands-only

デフォルトは、yes
rootでのログインを許可するかどうかを指定する。
without-passwordは、パスワードを使用したrootユーザのログインを拒否する。
forced-commands-onlyは、rootユーザの直接ログインを拒否するが、root権限を使用するコマンドのアクセスは許可する。
StrictModes yes
no
デフォルトは、yes
ログイン前にユーザのディレクトリやファイルのパーミッションをチェックする。
MaxAuthTries 整数値
デフォルトは、6
認証の再試行最大数。
指定値の半数以上の認証が失敗する時、それ以降の失敗はログに記録される。
MaxSessions 整数値
デフォルトは、10
最大同時接続数
RSAAuthentication yes
no
RSA認証を有効にする。
RSA認証は、SSH1のみ有効にすることができる。

現在のOpenSSHでは、廃止された。
PubkeyAuthentication yes
no
デフォルトは、yes
公開鍵認証を許可する。
AuthorizedKeysFile SSHサーバに保存されている公開鍵ファイルのパス

デフォルトは、以下の2つのファイルである。
.ssh/authorized_keys
.ssh/authorized_keys2
ユーザ認証の際に使用される公開鍵を格納しているファイル名を指定する。
絶対パス、または、ユーザのホームディレクトリからの相対パスで指定する。
AuthorizedKeysCommand コマンド

デフォルトは、none
公開鍵を取得するために使用するコマンドを指定する。
AuthorizedKeysCommandUser ユーザ名

デフォルトは、none
AuthorizedKeysCommand項目で指定したコマンドを実行する時のユーザを指定する。
RhostsRSAAuthentication yes
no
デフォルトは、no
RSA認証が成功した時、rhostsや/etc/hosts.equivを使用した認証を許可する。
SSH1の場合のみ有効である。

現在のOpenSSHでは、廃止された。
HostbasedAuthentication yes
no
デフォルトは、no
公開鍵認証が成功した時、rhostsあるいは/etc/hosts.equiv認証を許可する。
(ホストベースド認証)
IgnoreUserKnownHosts yes
no
デフォルトは、no
RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、
ユーザの~/.ssh/known_hostsファイルを使用しないようにする。
IgnoreRhosts yes
no
デフォルトは、yes
RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、
.rhostsおよび.shostsを使用しないようにする。
PasswordAuthentication yes
no
デフォルトは、yes
パスワード認証を許可する。
RFC 4252で定義されている"Password Authentication Method (password)"を有効にする。
クライアントがユーザ名とパスワードをサーバに送信して、サーバは成功または失敗を返す。
PermitEmptyPasswords yes
no
デフォルトは、no
パスワード認証を許可している時、
パスワードが空のアカウントに対してサーバがログインを許可するかどうかを指定する。
ChallengeResponseAuthentication yes
no
デフォルトは、yes
チャレンジレスポンス認証を許可する。
RFC 4256で定義されている"Generic Message Exchange Authentication (keyboard-interactive)"認証を有効にする。

まず、クライアントがサーバにユーザ名のみを送信する。
それに対して、サーバがクライアントにinstructionやprompt等を送信して、クライアントが応答する。
認証に必要な回数だけ、サーバはクライアントとやり取りすることが出来る。

PAMを使用して認証するという前提の実装であるため、UsePAMがNoの場合は認証に失敗する。
KerberosAuthentication yes
no
デフォルトは、no
ケルベロス認証を許可する。
KerberosOrLocalPasswd yes
no
デフォルトは、yes
ケルベロス認証で失敗した場合は、ローカルパスワードで認証する。
KerberosTicketCleanup yes
no
デフォルトは、yes
ログアウト時、ケルベロス認証用のキャッシュを自動的に削除する。
KerberosGetAFSToken yes
no
デフォルトは、no
ケルベロス認証において、AFSが有効であり、ユーザがKerberos 5のTGTを持っている場合、
ユーザのホームディレクトリにアクセスする前に、AFSトークンの取得を試みる。

現在のOpenSSHでは、廃止された。
KerberosUseKuserok yes
no
デフォルトは、yes
ケルベロス認証で、.k5loginファイルが存在する場合は使用する。

現在のOpenSSHでは、廃止された。
GSSAPIAuthentication yes
no
デフォルトは、no
GSSAPIベースのユーザ認証を使用する。

これは、SSHの認証方法の1つであり、Kerberosを利用する認証方式を示す。
これは、GSSAPI(Generic Security Services API)を使用して認証を行う。
この認証方式を使用することにより、ユーザ名とパスワードの代わりにKerberosトークンを使用して認証を行う。

SSH2の場合のみ適用される。
GSSAPICleanupCredentials yes
no
デフォルトは、yes
ユーザがログアウトする時、その証明書キャッシュを自動的に消去する。
SSH2の場合のみ適用される。
GSSAPIStrictAcceptorCheck yes
no
デフォルトは、yes
GSSAPIアクセプタのチェックを厳格に行う。
GSSAPIKeyExchange yes
no
デフォルトは、no
GSSAPIを許可するために鍵交換を行う。
GSSAPIStoreCredentialSonreKey yes
no
デフォルトは、no
SSHクライアントがGSSAPI(Generic Security Services API)を通して取得した認証情報を、
将来の鍵交換操作のために保存するかどうかを決定する。

yes
クライアントは同じホストへの次回接続時に、毎回認証を求めるのではなく、保存された認証情報を再利用する。
これにより、認証要求の回数を減らすことで認証プロセスを改善し、
認証情報をクライアントPCに安全に保存することにより、セキュリティを向上させることができる。

no
SSHクライアントが、GSSAPIを通じて取得した資格情報を保存せずに、毎回認証を要求することを示す。
GSSAPIKexAlgorithms 指定できるアルゴリズムを、以下に示す。
・ gss-gex-sha1-
・ gss-group1-sha1-
・ gss-group14-sha1-

デフォルトは、gss-gex-sha1-,gss-group14-sha1-
GSSAPI(Generic Security Services API)を使用して鍵交換を行うアルゴリズムの種類を指定する。

GSSAPIを使用することにより、安全な認証と鍵交換を行うことができるが、
使用するアルゴリズムによっては、安全性や速度などに差があるため、この設定において使用するアルゴリズムを選択することができる。

この項目は、サーバ側とクライアント側の両方で設定する必要がある。
また、使用するアルゴリズムの種類により、互換性の問題が生じる可能性もあるため、注意が必要である。
UsePAM yes
no
デフォルトは、no
PAM(Pluggable Authentication Module)インターフェースによる認証を許可する。

当設定をyesに設定する場合、
PasswordAuthentication、または、ChallengeResponseAuthenticationのいずれかを許可する必要がある。
その時、sshdコマンドをroot以外の一般ユーザで実行することはできなくなる。
FingerprintHash MD5またはSHA256が指定できる。

デフォルトは、SHA256
フィンガープリントを記録する時に使用するハッシュアルゴリズムを指定する。

OpenSSH 6.8以降に追加された項目である。
OpenSSH 6.7以前では、強制的にMD5となる。
AcceptEnv 環境変数を記述する。
デフォルトは、空
クライアントから送信されてきた環境変数のうち、有効にするものを指定する。

変数は名前で指定され、名前にはワイルドカード文字*?を含めることができる。
複数の環境変数を空白で区切ったり、複数のAcceptEnv項目に跨いで記述することができる。
環境変数の中には、制限されたユーザ環境を迂回するために使用する可能性のあるものがあることに注意する。
AllowAgentForwarding yes
no
デフォルトは、yes
ssh-agentによるエージェント転送を許可する。
AllowTcpForwarding yes
no
デフォルトは、yes
TCP転送を許可する。
GatewayPorts yes
no
デフォルトは、no
ポート中継を許可する。
X11Forwarding yes
no
デフォルトは、no
X11転送を許可する。
X11DisplayOffset 整数値
デフォルトは、10
X11転送をする場合に最初に使用されるディスプレイ番号。
X11UseLocalhost yes
no
デフォルトは、yes
X11をlocalhostのみ許可する。
PrintMotd yes
no
デフォルトは、yes
ログイン時に/etc/motdの内容を表示する。
PrintLastLog yes
no
デフォルトは、yes
ログイン時に前回ログインした日時と時刻を表示する。
TCPKeepAlive yes
no
デフォルトは、yes
TCPキープアライブメッセージを送信する。
UseLogin yes
no
デフォルトは、no
ログインでloginプログラムを使用する。

現在のOpenSSHでは、廃止された。
UsePrivilegeSeparation yes
no
デフォルトは、yes
sshdがセッションを受け付けるネットワークトラフィックを処理するためにroot権限を分離する。

OpenSSH 7.8p1以降では、UsePrivilegeSeparationは、sandboxオプションが必須になったため、
設定は変更できない。
PermitUserEnvironment yes
no
デフォルトは、no
ユーザの環境変数の変更を許可する。
Compression yes(deayed)
no
デフォルトは、yes

delayedは、yesの従来のシノニムである。
圧縮を許可する。
デフォルトでは、ユーザが認証されてから圧縮を許可する。(delayed)
ClientAliveInterval yes
no
デフォルトは、0
クライアントの生存チェック間隔を指定する。
デフォルトは、チェックしない。(0)
ClientAliveCountMax yes
no
デフォルトは、3
クライアントの生存チェック最大カウント数を指定する。
ShowPatchLevel yes
no
デフォルトは、no
セッション確立時にクライアントにOpenSSHのパッチレベルを通知する。

OpenSSH 8.0p1以降では、当オプションは無効になった。
UseDNS yes
no
デフォルトは、yes
DNSを使用してリモートホスト名を確認する。
PidFile PIDファイルのパス
デフォルトは、/run/sshd.pid
PIDファイルの出力先を指定する。
MaxStartups 整数値
デフォルトは、10:30:100
sshdが認証成功までの接続を受け付ける最大数を指定する。
PermitTunnel yes
no
デフォルトは、no
トンネリングを許可する。
ChrootDirectory chrootを行うディレクトリのパス
デフォルトは、none
chrootを行うディレクトリのパス名を指定する。
Banner 文字列
デフォルトは、none
セッション確立時に表示する文字列を指定する。
VersionAddendum 文字列
デフォルトは、none
接続時にサーバから送信されるSSHプロトコルバナーに付加する追加のテキストを指定する。
Subsystem

第1引数
サブシステム名 (一部抜粋)
・ sftp
SFTPプロトコルを実行するためのサブシステム

・ scp
SCPプロトコルを実行するためのサブシステム

・ shell
リモートシェルを実行するためのサブシステム

・ exec
リモートシェルに対してコマンドを実行するためのサブシステム

・ sftp-server
外部のSFTPサーバを指定して、SFTPサブシステムを実行するために使用する。

・ internal-sftp
内部的なSFTP実装を使用して、SFTPサブシステムを実行するために使用する。
これは、外部のSFTPサーバを使用せずに、SSHサーバ自身に内蔵されたSFTPサブシステムを使用する。

第2引数
サブシステムに要求があった場合に実行されるコマンドのパス(および、必要な場合はその引数)を指定する。

第3引数
第2引数に渡す引数を指定する。

デフォルトは、空

ユーザがログインした時にサーバ上で起動される外部プログラムを指定する。

サブシステムは、SSH接続のコンテキストでサーバ上で実行される独立した別個のプログラムである。
サブシステムは、SFTPのような追加機能、および、シェルセッションを開始せずに、
サーバ上でコマンドを実行する方法を提供する。

これは、サブシステム名、コマンド名(サーバ上で実行されるプログラム名と一致しなければならない)、
そのプログラムに渡す引数を指定する。

サブシステム名にsftp-serverおよびinternal-sftpを指定することにより、
ChrootDirectoryを使用してクライアントに別のファイルシステムルートを強制する構成が
簡素化される場合がある。
また、両方のオプションを使用することにより、特定のSFTPサブシステムを指定することができる。
Match デフォルトは、空 条件に一致した場合の処理を指定する条件分岐を行う。



設定ファイルの確認

SSHの設定ファイルの正当性を確認する。

sudo sshd -t


-Tオプションを付加することにより、SSHの設定ファイルの正当性を確認して、有効な設定項目を標準出力に表示することができる。

sudo sshd -T


指定したSSHの設定ファイルの正当性を確認する。

sudo sshd -t -f <sshd_configファイルのパス>
# または
sudo sshd -T -f <sshd_configファイルのパス>


SSHの設定ファイルにおけるデフォルト値を取得する。

sudo sshd -T -f /dev/null



OpenSSHのパスワード認証

CentOSおよびSUSEでは、SSHは標準で自動起動設定になっているため、パスワード認証方式でのログインが可能となっている。
したがって、最低限必要な設定として、セキュリティを考慮して以下に示すようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。

まず、SSHの設定を行う。

sudo nano /etc/ssh/sshd_config
PermitRootLogin no  # コメントを解除(rootログイン禁止)


次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。

sudo systemctl restart sshd


もし、Firewalldを有効にしている場合は、SSHサービスの許可が必要である。
なお、ポート番号の変更をしていない場合、SSHのポートはTCP 22番である。

sudo firewall-cmd --permanent --add-service=ssh


Firewalldの設定を反映させるため、Firewalldを再起動する。

sudo firewall-cmd --reload



SSHのポート番号の変更

SSH接続ではデフォルトでポート番号22を使用している。
以下のコマンドを実行し、ポート番号の変更を行う。
Port 22と記載している箇所が存在するので、ポート番号49152 - 65535の間のポート番号に変更して保存する。

sudo nano /etc/ssh/sshd_config


次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。

sudo systemctl restart sshd


Firewalldを有効にしている場合は、SSHサービスのポート番号を開放する。

sudo firewall-cmd --permanent --add-port=<変更したSSHのポート番号>/tcp


Firewalldの設定を反映させるため、Firewalldを再起動する。

sudo firewall-cmd --reload



SSH接続中のサスペンドの無効化

GNOME / KDE

SSH接続されているPCは無操作状態とみなされて、サスペンドの設定をしている場合、所定の時間が経過するとサスペンドされる。
そのため、SSH接続中のユーザが存在する時はサスペンドしないように設定する必要がある。

まず、/usr/lib/systemd/systemディレクトリにsystemdユニットファイルを作成する。

これは、スリープフックと呼ばれるものであり、スリープまたはハイバネートする前にExecStartで指定したコマンドが実行される。
まず、whoコマンドを実行することにより、SSH接続中のユーザが存在するかどうか確認する。
もし、SSH接続中のユーザが存在する場合は、終了コードを0以外にして後続処理を動作させないようにする。

sudo vi /usr/lib/systemd/system/inhibit-sleep.service


# /usr/lib/systemd/system/inhibit-sleep.serviceファイル

[Unit]
Description=Inhibit sleep when ssh logged
Before=sleep.target

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c '! who | grep -q "(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\})"'

[Install]
RequiredBy=sleep.target


以下のシンボリックリンクを作成する。

sudo ln -s /usr/lib/systemd/system/inhibit-sleep.service /etc/systemd/system/


コマンドでsystemdユニットファイルを有効にするため、以下のコマンドを実行する。

sudo systemctl enable inhibit-sleep.service


動作確認するには、システムログを確認する。
サスペンドした場合はReached target Sleep.、サスペンドから復帰した場合はStopped target Sleep.と表示される。

sudo journalctl -f -usleep.target


GNOME

ソフトウェアの使用中にも関わらず、スクリーンセーバーまたはサスペンドが作動するものがある。
このような場合、gnome-session-inhibitツールを使用して、サスペンド等を防止する。

これを行うには、~/.bashrcファイル等の最下行に以下の設定を追記する。

 if [[ -n $SSH_CONNECTION ]]; then
    : $(gnome-session-inhibit --inhibit suspend --reason "SSH connection is active" --inhibit-only) &
 fi



SSHPassのインストール

SSHPass(Non-interactive SSH Password Authentication)を使用すると、コマンドにてssh接続のパスワードを指定することができるので、
sshコマンドと合わせて1行でSSH接続できるようになる。

パッケージ管理システムを使用してインストール
# CentOS
sudo yum install epel-release
sudo yum update
sudo yum install sshpass

# SUSE
sudo zypper install sshpass


ソースコードからインストール

SourceForgeのWebサイトからSSHPassのソースコードをダウンロードする。
https://sourceforge.net/projects/sshpass/

ダウンロードしたファイルを解凍して、任意のディレクトリに移動する。(ここでは、sshpassというディレクトリとする)

tar xf sshpass-<バージョン>
cd ~/sshpass-<バージョン>


ビルドディレクトリを作成する。

mkdir build && cd build


SSHPassをビルドおよびインストールする。

../configure --prefix=<SSHPassのインストールディレクトリ>
make -j $(nproc)
make install


.profileファイル等に環境変数PATHを追加する。

export PATH="$HOME/SSHPass/bin:$PATH"


確認

以下のコマンドを実行して、SSHPassが正常にインストールできたか確認する。

sshpass -V


使用方法

SSHPassを使用して、パスワードを指定する例を示す。
ただし、初回のログインにおいて、使用できない場合があるので注意すること。

sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス>