0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VPSクラウドのsshログインとpythonのインストールまで

Last updated at Posted at 2020-12-12

#環境構築するまでの流れ
備忘録として記録します。

##そもそもなんでLinuXか
###①無料で使える
WindowsOSをインストールするのには1台当たり約15,000~20,000円
LinuxはOSインストール費用は無料
###②ソフトも大体無料
###③中身を弄れる
OSの本質を勉強することができる。
もちろん中身を弄って壊れることもある。
その時は無料でOSを再インストールできるのが強み
###④サーバを自由に建てることができる
サーバの多くはLinuxで動いている。
例)AWSもLinux上で動いている
###⑤古いPCでもサクサク動く
Linuxはとても早く動く。
それは不要なものをそぎ落としている軽量OSであるため。

##centOSを選択
###理由① 業界のデファクトスタンダード
デファクトスタンダードはRHEL(RedHatEnterpriseLinux)。
しかし、ライセンス料が決して安くはない。
そのためRHELのクローンであるcentOS(CommunityEnterpriseOperatingSystem)を使う。

###理由② 情報量が豊富
私用しているユーザが多いため、情報が多く存在する。
そのため勉強もしやすい。

##環境構築
###サーバ選定
WebARENAのVPS(Virtual Private Server)クラウドを契約しました。
理由は料金面が主です。

###サーバにssh接続
ssh(Secure Shell)とはネットワークに接続された機器を遠隔操作し、管理するための手段。
VPSはほとんどの場合、遠隔操作が主になる。
そのため、万が一悪意を持ったユーザがサーバにログインできてしまうと悪用される。
そこでsshを利用して、対象のユーザのみがログインできるようにする。

###①インストール確認
まずはTeraTermを使ってルートユーザでログイン。
(WebARENAのマニュアルを参照)

#openssh-serverがインストールされているかの確認
# yum list installed | grep ssh

libssh2.x86_64                     1.4.3-10.el7_2.1               @base/7.4.1708
openssh.x86_64                     7.4p1-11.el7                   @base/7.4.1708
openssh-clients.x86_64             7.4p1-11.el7                   @base/7.4.1708
openssh-server.x86_64              7.4p1-11.el7                   @base/7.4.1708

インストールOK。
無かった場合、
 # yum -y install openssh-server
でインストール。

###②設定の確認

# vi /etc/ssh/sshd_config

PermitRootLogin yes
⇒noに変更
理由:rootユーザでのログインを拒否するため。(セキュリティ面)
PasswordAuthentication
⇒yesに変更
理由:ユーザからのログインを許可するため

最後に:wqで保存

###③サービスの起動

# systemctl start sshd.service
# systemctl status sshd.service
Active: active (running)
になっていればOK

###④ファイアウォール設定
ssh用のポートが解放されているか確認。

# firewall-cmd --list-all
Servicesの欄にsshが入っていればOK

###⑤ユーザ作成
rootログインを制限したため、新規ユーザを作成

# useradd admin
# passwd admin

これでユーザログインできるはず…
しかし、できず。

方法を変えます。
https://hackers-high.com/linux/easy-ssh-publickey-authentication/
を参考にしました。

# su admin
#sshキーの生成
$ ssh-keygen -b 2048 -C [任意のコメント]
#どこに生成するか聞かれる
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
⇒そのままEnter
Created directory '/home/admin/.ssh'.
⇒初期設定のディレクトリに生成
Enter passphrase (empty for no passphrase):
⇒独自のパスフレーズを設定

####公開鍵の登録

cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
#不要なキーを削除
$ rm -f id_rsa.pub

####秘密鍵をクライアント側に持ってくる

$ cat id_rsa
#—–BEGIN RSA PRIVATE KEY—– から —–END RSA PRIVATE KEY—– までをコピーして、クライアントで作成したファイル id_rsa にペーストすればOK。
#サーバ側の秘密鍵を削除
$ rm -f id_rsa
#sshdを再起動して設定を反映
$ systemctl restart sshd

teratermから
ユーザ名:admin
パスワード:設定したパスフレーズ
秘密鍵;生成したファイル
でユーザログインを確認。

※セキュリティ的に少し疑問が残るため、この方法以外でユーザログイン出来た方は教えていただけると幸いです。

##pythonのインストール
まず現時点でインストールされているpythonのバージョンを確認。

$ python --version
Python 2.7.5

古いバージョンですね。最新版をインストールしていきます。
その前に作成したユーザにsudoのインストール権限を与えます。

#root権限で実行
#wheelというグループに所属していればsudoが使える
# usermod -aG wheel admin
#adminに変更
$ groups
admin wheel
⇒OK!

それではpythonをインストールしていきます。

#pyenvを使ってpythonのバージョンを切り替える。
#pyenvはpythonバージョン管理ツール
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
#環境変数の設定を行う。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

#設定が完了したのでpyenvのバージョンをチェック
pyenv --version
pyenv 1.2.21-5-gdb939bb

次に任意のディレクトリにpythonをインストールします。
自分は以下のディレクトリとしました。

$ mkdir /home/admin/python_install 
/home/admin/python_install
#インストールできるpythonのバージョンを確認
$ pyenv install --list | grep 3.9
  3.9.0
  3.9-dev
  3.9.1
  miniconda-3.9.1
  miniconda3-3.9.1

#最新の3.9.1をインストール
$ pyenv install 3.9.1

#失敗しました。以下エラー。
Downloading Python-3.9.1.tar.xz...
-> https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz
Installing Python-3.9.1...

BUILD FAILED (CentOS Linux 7 using python-build 1.2.21-5-gdb939bb)

Inspect or clean up the working tree at /tmp/python-build.20201212114831.8867
Results logged to /tmp/python-build.20201212114831.8867.log

Last 10 log lines:
checking for python... python
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "linux"
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/python-build.20201212114831.8867/Python-3.9.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

pythonをインストールためのパッケージがなかったようです。

#必要なパッケージのインストール
$ sudo yum -y install xz bzip2 sqlite-devel gcc openssl-devel readline-devel zlib-devel
$ sudo yum -y install libffi-devel

再度pythonをインストール

$ pyenv install 3.9.1

無事インストール完了。

$ python -V
Python 2.7.5

まだ、pythonのバージョンは切り替わってないのでここを変更します。

$ pyenv rehash
#globalを使うとシステム全体に変更を適用できる
#一部のみの場合はlocalを使用
$ pyenv global 3.9.1
$ python -V
Python 3.9.1

無事、pythonのバージョンを変更できました。

####pythonの動作確認

$ python
>>>print("Hello World")
Hello World

OKですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?