728x90

제 리눅스 환경과 원격 서버의 환경은 아래와 같습니다.

Ubuntu 20.04 LTS

 

만들고자 하는 계정과 배경은 이렇습니다.

  • @와 .이 들어간 이메일 형식의 사용자 계정을 추가하고 싶습니다.
  • 원격 Git Server가 존재하고 로컬에서 SSH로 Repository를 관리하고 싶습니다.

 

사용자 계정추가

먼저 linux에서 사용자 계정을 만드는 명령어는 adduser와 useradd가 있습니다.

여기서는 adduser로 설명을 하겠습니다.

 

$ sudo adduser <사용자id>
$ sudo adduser userId@admin.com

두 번째처럼 계정을 설정할 경우 오류 메시지를 내뿜으면서 계정이 생성되지 않습니다.

기본적으로 특수문자를 계정으로 설정할 수 없기 때문입니다.

하지만 무시하고 특수문자를 계정의 id에 추가하고 싶으면 --force -badname 옵션을 사용하세요.

$ sudo adduser userId@admin.com --force -badname

이후에 비밀번호를 설정하고 다른 내용을 채워주시면 사용자 계정이 생성됩니다.

 

SSH 설정

* SSH를 사용 가능한 상태를 전제로 합니다. ex) openssh 설치*

 

ssh 설정은 서버와 로컬에서 각각 해주실 것이 있습니다.

우선 로컬에서 ssh 공개키를 생성해야 합니다.

기본적으로는 ~/.shh 경로에 키가 존재합니다.

$ cd ~/.ssh 
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

.ssh 디렉토리로 이동해 ls 명령어로 id_dsa.pub이 있는지 확인합니다.

id_dsa.pub가 공개키고 id_dsa는 개인키입니다.

만약 공개키가 없다면 ssh-keygen 명령어로 생성해주세요.

$ ssh-keygen

그러면 키를 저장하고 싶은 디렉토리를 입력하고 암호를 두 번 입력하면 생성할 수 있습니다.

이때 암호를 비워두면 키를 사용할 때 암호를 묻지 않습니다.

암호를 생성하면 암호는 아래처럼 생겼습니다.

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

그럼 이제 이 파일을 옮기거나 내용을 복사해 서버에 만들어둔 계정의 .ssh/authorized_keys에 등록하면 됩니다.

 

서버에서는 제일 먼저 생성했던 계정으로 사용자 변경해줍니다.

$ su userId@admin.com
$ cd ~
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

사용자 계정을 userId@admin.com로 지었으니 su 명령어를 사용해 사용자를 변경해주고

홈 디렉토리로 이동 후 .ssh 디렉토리 생성, 권한 변경.

authorized_keys 파일 생성, 권한 변경을 해줍니다.

 

이후 authorized_keys 파일에 위에 로컬에서 생성한 공개키를 추가해주시면 됩니다.

파일로 가져오셨다면 cat, 복사해오셨다면 echo를 사용해주세요. 

사실 다른 방법도 될 수 있는데 전 echo를 사용했습니다.

$ echo "공개키"  >> ~/.ssh/authorized_keys

다음부터는 생성한 계정을 통해 접속하시면 됩니다.

 

#ex)
$ ssh userId@admin.com@192.168.xxx.xxx:9999

저는 Repository를 관리한다고 했으니 서버에 생성한 계정 소유자 권한을

서버에 접속은 못하고 push, pull만 가능하게 하려면 git-shell를 사용해보세요.

 

참조

Git server 설정하기

 

Git - 서버 설정하기

ssh-copy-id 명령을 사용하면 여기에서 설명하는 SSH 공개키를 복사하고 설치하는 내용을 자동화 한 도구이다.

git-scm.com

새 사용자 계정추가 aws linux

728x90

'OS' 카테고리의 다른 글

Linux Shell 명령어 - scp, cp, cat, su, chmod  (0) 2022.11.21
728x90

 

scp

- Secure Copy의 줄임말입니다.

- SSH 통신을 이용해 네트워크로 연결된 호스트 간에 파일을 주고받는 명령어입니다.

- 원격 저장소에 있는 파일과 디렉토리를 보내거나 가져올 수 있습니다.

원격 저장소에서 폴더 받아오기
$ scp git@192.168.000.000:/myrepo.git /home/repos
$ scp 옵션 [저장소아이디]@[저장소주소]:[폴더위치] [저장위치]

로컬에서 원격 저장소로 파일보내기
$ scp test.txt git@192.168.000.000:/myrepo.git
$ scp [옵션] [파일 또는 디렉토리] [저장소아이디]@[저장소주소]:[저장위치]

 

 

cp

- copy 명령어입니다.

- 파일 또는 디렉토리를 복사하는데 이용합니다.

$ cp test.text test2.txt
test 파일을 복사하여 test2 파일을 생성합니다.

 

cat

- 파일의 내용을 텍스트로 출력합니다.

$ cat /home/user/test.txt

home/user 경로 안에 있는 test 파일을 읽어 쉘에 보여줍니다.

사용방법은 훨씬 많지만 저는 파일을 읽어 안의 내용을 확인할 때만 사용하고 있습니다.

 

su

- Substitute User의 줄임말입니다.

- 다른 계정으로 전환하는 명령어입니다.

$ su git
$ su otheruser

계정에 비밀번호를 만들어 뒀을 경우 명령어를 사용하면 비밀번호를 입력하라고 나옵니다.

계정 생성은 useradd 명령어 혹은 adduser를 사용하면 됩니다.

개인적으로는 adduser가 편한 것 같습니다.

 

chmod

- Change Mode의 줄임말입니다.

- 파일의 사용 권한을 변경할 때 사용합니다.

$ chmod [option] [mode] [file]

- 읽고, 쓰고, 실행하는 것에 대한 권한을 지정할 수 있습니다.

- 이는 rwx와 8진수 형식으로 지정할 수 있습니다.

$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

 

728x90

'OS' 카테고리의 다른 글

Linux(Ubuntu) adduser 사용자 계정 추가와 SSH 설정  (0) 2022.11.22

+ Recent posts