web-dev-qa-db-ja.com

OpenSSHクライアントのみを構築する

ソースから OpenSSH 7.9p1をビルドしようとしていますが、たとえばssh-agentssh-keygen、を削除する(または含めない)方法が見つかりません。 scpsftpsshdなど–もちろん、sshコマンドが機能するためにこれらのいずれも必要ないと仮定します。

理想的には、クライアントであるsshコマンドのみが必要ですが、繰り返しになりますが、他にどのような部分が必要かわかりません。ビルド/インストールされるもののほとんどは、クライアントではなくサーバーによって使用されると思います。

1
x80486

はい、提供されているデフォルトのビルドシステムでこれを行うことができます。

提供された_./configure_スクリプトを実行して生成されたMakefileを見ると、デフォルトの(最初の)ターゲットが

_TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT)
_

(Unixライクなシステムの場合、$(EXEEXT)は空である必要があります)。それぞれに独自のビルドターゲット/ルールがあるため、たとえば次のことができます。

_make ssh
_

クライアントのみを作成します。

例.

_$ make ssh

<snip>

$ find . -type f -executable -newermt yesterday
./config.status
./ssh

$ ./ssh -V
OpenSSH_7.9p1, OpenSSL 1.1.0g  2 Nov 2017
_
3
steeldriver