vim加密
1. linux該如何學習
linux運維的學習過程,主要分為4個階段,初級入門->中級進階->高級提升->資深細化。
第一階段:初級入門
1、linux基礎知識、命令(常用命令如cp、ls、mkdir等)
2、linux用戶及許可權基礎
3、linux系統進程管理進階
4、linux文件處理命令(vim、grep、sed、awk、find等)
5、shell腳本入門
第二階段:中級進階
1、tcp/ip網路基礎
2、linux企業級安全原理和防範技巧
3、加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎
4、iptables安全策略構建
5、shell腳本進階
6、mysql應用原理及管理入門
第三階段:高級提升
1、企業級負載集群(主要學習varnish、nginx緩存系統)
2、企業級高可用集群(需要對keepalived、heartbeat有一定了解)
3、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統)
4、運維自動化學習(需要學一些開源運維自動化工具的使用,如ansible、puppet、cobbler等工具)
第四階段:資深進階
1、大數據方向(需要對hadoop、storm等常見開源大數據系統深入了解)
2、雲計算方向(主要是openstack,kvm等虛擬化技術也是需要的,還有docker)
3、運維開發(python運維開發)
4、自動化運維(在之前自動化基礎上做深入)
2. centos7裡面用vim加密解密後依然顯示的是亂碼怎麼回事(用set key=)解密的依然顯示亂碼
首先那個文件本來得是 vim 加密的。
如果是的話,用 vim 載入那個文件的時候會自動提示輸入密鑰,不需要 set key。
set key 的唯一(vim 文檔中指出尺運)合理用法是:一個已經加密的文件,如果想把它恢復成一個普通文件,可以在正確解密後,用 :set key= 來把 key 清空。如果想加密一個文件,應該用 :X,這可以避免輸入密鑰時打錯字。
如果確實是 vim 加密的弊困稿,那麼再解密要提供和加密時一樣的密鑰。輸錯密鑰,vim 不會給任何提示,只是把亂碼給你顯示出租孝來而已。
3. 手把手申請https免費證書,親測有效!
Let'sencrypt泛域名證書申請
1、申請網址 https://www.sslforfree.com , 右上角可選擇中文語言。
2、以鉛謹申請泛域名*.me2you.top為例
3、打開網址並輸入*.me2you.top me2you.top,並點擊按鈕「槐腔基Create Free SSL Certificates」,申請證書。
注意:泛域名需要輸入* 及 不帶*的域名
4、選擇手動DNS驗證 Manually Verify Domain (DNS)
5、 選擇DNS驗證後,會出現txt記錄, 需要把此兩條txt在域名管理平台設置。
6、這兩個域名我在阿里雲注冊的,需要登陸阿里雲新增解析。(注冊了兩個域名用了10元一年)
域名1:me2you.top
域名2:me2you.online
7、10分鍾後,驗證txt記錄是否生效。當TTL值循環更新一次即可。
8、點擊按鈕「DownLoad SSL Certificates」,即可在跳轉後的頁面看到加密後證書及下載按鈕。
9、合並證書
需要將certificate.crt、ca_bundle.crt合並到一起,兩個文件用EditPlus、UltraEdit、vim軟體打開,將ca_bundle.crt內容粘貼進入certificate.crt尾部即可。(如不合並,在手機瀏覽器中可能無法認圓拆證)
10、nginx測試
4. linux下最常用的遠程管理工具是什麼 ss
在我們日常管理與維護伺服器個過程中,我們都需要使用遠程連接工具,今天我們就一同來總結下Linux常用的安全遠程連接工具-OpenSSH。
【遠程登錄協議】
1、telnet:是TCP/IP協議族中的一員,是Internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主
機工作的能力。默認使用的是TCP的23號埠,採用C/S架構,在用戶登錄的過程中傳輸的信息都是明文信息,安全無法保障,所以不建議用telnet。
2、ssh:為Secure Shell 的縮寫,由IETF的網路工作小組所制定;SSH
為建立在應用層和傳輸層基礎上的安全協議。SSH是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用 SSH
協議可以有效防止遠程管理過程中的信息泄露問題。默認使用的是並手TCP的22號埠,也是基於C/S架構,SSH有兩個版本v1與v2。
sshv1:基於CRC-32做MAC(消息摘要認證),不安全,強烈建議不使用;
sshv2:基於雙方主機的協商選擇使用最安全的MAC方式 ,其有如下特點:1、加密機制及MAC機制由雙方協商選定;2、基於DH實現密鑰交換,基於RSA或DSA實現身份認證;3、客戶端通過檢查伺服器端的主機密鑰來判斷是否能夠繼續通信;
【OpenSSH簡述】
OpenSSH 是一組用於安全地訪問遠程計算機的連接工具。它可以作為rlogin、rsh
rcp以及telnet的直接替代品使用。更進一步,其他任何TCP/IP連接都可以通過SSH安全地進行隧道/轉發。OpenSSH
對所有的傳輸進行加密,從而有效地阻止了竊聽、連接劫持,以及其他網路級的攻擊。OpenSSH 由 OpenBSD project 維護。
登錄過程和使用rlogin或telnet建立的會話非常類似。在連接時,SSH
會利用一個密鑰指紋系統來驗證伺服器的真實性。只有在第一次連接時,用戶會被要求輸入yes進行確認,之後逗侍的連接將會驗證預先保存下來的密鑰指紋。如果保
存的指紋與登錄時接收到的不符, 則將會給出警告。 指紋保存在 ~/.ssh/known_hosts中,對於SSHv2指紋,則是
~/.ssh/known_hosts2。
默認情況下,較新版本的OpenSSH只接受SSHv2連接。如果能用版本2則客戶程序會自動使用,否則它會返回使用版本1的模式。此外,也可以通
過命令行參數-1或-2來相應地強制使用版本1或2。 保持客戶端的版本1能力是為了考慮較早版本的兼容性,建議盡量使用版本2。
【SSH伺服器和客戶端工作流程】絕指嫌
OpenSSH使用C/S架構:
服務端工具(S):sshd
客戶端工具(C):ssh命令、putty、xshell、securecrt、sshshellclient;
【OpenSSH客戶端組件-ssh】
配置文本:/etc/ssh/ssh_config
使用方法:
ssh [username@] host [COMMAND]或 ssh -l username host [COMMAND]
-p PORT:指定遠程伺服器埠;
-l username:指定登錄遠程主機的用戶,不指定則使用當前用戶;
username@:等同於 -l username;
如果設置了COMMAND,表示使用username賬戶登錄遠程主機執行一次指定的命令並返回結果,不會停留在遠程主機上;
[root@www ~]# ssh 192.168.0.110 #使用root用戶登錄;
The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.
RSA key fingerprint is 01:2e:43:cc:bc:1d:f1:e5:f0:f4:89:78:74:a9:49:44.
Are you sure you want to continue connecting (yes/no)? yes #第一次連接,需手動進行確認;
Warning: Permanently added '192.168.0.110' (RSA) to the list of known hosts.
[email protected]'s password: #輸入遠程主機root賬戶的密碼;
Last login: Mon May 11 16:44:52 2015 from 192.168.0.104
[root@mailCentOS6 ~]# #登錄成功了,遠程主機名為mailCentOS6;
[root@mailCentOS6 ~]# ls #顯示遠程主機root家目錄下的文件;
2.sh boot.iso install.log sdb.mbr test1
anaconda-ks.cfg crontab install.log.syslog \temp\test
[root@mailCentOS6 ~]# exit #退出登錄;
logout
Connection to 192.168.0.110 closed.
[root@www ~]# ssh [email protected] ls #使用root登錄遠程主機,執行一次ls命令,返回結果便退出;
[email protected]'s password: #第二次連接,就不需要輸入yes了,直接輸入密碼即可;
2.sh
anaconda-ks.cfg
boot.iso
crontab
install.log
install.log.syslog
sdb.mbr
\temp\test
test1
[root@www ~]# #看到了嗎,我們當前並沒有登錄在遠程主機;
【OpenSSH伺服器端組件-sshd】
配置文件:/etc/ssh/sshd_config(通過修改此文件可以修改ssh的默認監聽埠與其他參數)
服務腳本:/etc/rc.d/init.d/sshd
服務啟動|停止|重啟:serveice sshd start|stop|restart
腳本配置文件:/etc/sysconfig/sshd
配置參數
# man sshd_config 查看配置參數的說明;
# vim /etc/sysconfig/sshd 通過編輯配置文件來修改配置參數;
#+空格+文字:以此格式開頭的行表示改行為注釋說明;
#+文字:以此格式開頭的行表示可啟用選項,不改變則表示使用該選項的默認設置,反之使用設定值「#」要去掉哦!
例:#Port 22 如不去掉#且22不變,表示使用默認的22號埠;
若把#Port 22改成port 7777,表示把sshd的監聽埠改成7777;
注意:修改參數與配置後,必須重啟服務(service sshd restart).
經常需要修改的參數:
[root@www ~]# cat /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22 #修改默認監聽的埠;
port 7777 #把sshd的監聽埠改成7777;
#AddressFamily any #監聽的地址家族,指定是監聽在IPV4上還是IPV6上,any表示所有;
#ListenAddress 0.0.0.0 #指定監聽的地址 (0.0.0.0表示本機的所有地址);
#ListenAddress ::
# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key #使用shhv1用到的主機密鑰;
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024 #密鑰長度;
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m #登錄寬限期;
#PermitRootLogin yes #是否允許管理員直接登錄;
#StrictModes yes
#MaxAuthTries 6 #最大密碼輸入錯誤次數;
#MaxSessions 10 #最大會話個數;
#RSAAuthentication yes #是否允許使用RSA機制來認證;
#PubkeyAuthentication yes
#--------中間不長改變的配置參數略----------
Subsystem sftp /usr/libexec/openssh/sftp-server #表示是否啟動sftp功能;
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
sshd認證方式:
1、基於口令的認證;
2、基於密鑰的認證;
# ssh-keygen -t rsa 用rsa演算法生成密鑰,默認密鑰為id_rsa(私鑰), id_rsa.pub(公鑰)
# ssh-keygen -f /path/to/somefile -P oldpassword 根據現有的密鑰文件生成密鑰
-f /path/to/somefile: 密鑰文件保存在的位置;
-P '': 指定生成舊密鑰時使用的密碼;
方法一:把本地主機生成的公鑰 id_rsa.pub使用scp復制到遠程主機的上,在遠程主機使用cat id_rsa.pub>>.ssh/authorized_keys追加該公鑰信息,這樣就可以實現基於密鑰認證的ssh登錄;
方法二:# ssh--id -i .ssh/id_rsa.pub USERNAME@HOST
[root@www ~]# ssh-keygen -t rsa #用rsa演算法生成密鑰;
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #指定密鑰存放路徑及名稱,一般不用
#修改,直接回車;
Enter passphrase (empty for no passphrase): #輸入私鑰密碼;
Enter same passphrase again: #確認輸入私鑰密碼;
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c2:f9:c2:3d:4d:ca:52:39:7a:a7:33:de:42:11:d3:8f [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o . |
| o o |
| . ...E . |
| + S.. |
| . B.= |
| =.B o |
| ++= |
| .o+. |
+-----------------+
[root@www ~]# ssh-keygen -f .ssh/id_rsa -P '' #根據現有密鑰文件重新生成密鑰;
Generating public/private rsa key pair.
.ssh/id_rsa already exists.
Overwrite (y/n)? y #提示是否確定要覆蓋;
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
bf:55:f0:0b:a5:ee:4e:4a:1d:d3:b1:0e:66:ee:55:9b [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . o |
| * o |
| S O = .|
| . * B oo|
| o * +E |
| . B . |
| o.+ |
+-----------------+
#-----使用方法一:實現通過密鑰文件完成身份驗證(不需要輸入密碼)-----
[root@www ~]# scp .ssh/id_rsa.pub [email protected]:/root/ #使用spc命令復制公鑰文件到遠程
#主機的用戶家目錄下的.ss/路徑下;
[email protected]'s password: #輸入登錄遠程主機的密碼;
id_rsa.pub 100% 397 0.4KB/s 00:00 #提示復製成功;
[root@mailCentOS6 ~]# ls .ssh/ #驗證確認文件復製成功;
id_rsa.pub known_hosts
[root@mailCentOS6 ~]# touch .ssh/authorized_keys #路徑內沒有自動驗證密鑰文件,創建一個;
[root@mailCentOS6 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys #把公鑰追加到自動驗證密鑰文件;
[root@www ~]# ssh 192.168.0.110
Last login: Mon May 11 20:45:10 2015 from 192.168.0.111
[root@mailCentOS6 ~]# #OK了,看到了沒有,不用輸入密碼我們就直接可以遠程登錄了!!
#-----使用方法二:實現通過密鑰文件完成身份驗證(不需要輸入密碼)-----
[root@mailCentOS6 ~]# rm -f .ssh/authorized_keys #刪除原有保存的自動驗證密鑰文件;
[root@www ~]# ssh--id -i .ssh/id_rsa.pub [email protected] #使用命令自動傳輸生成自動驗證密鑰文件;
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys #提示生成的文件;
to make sure we haven't added extra keys that you weren't expecting.
[root@www ~]# ssh 192.168.0.110 #驗證看看是否可以登錄;
Last login: Mon May 11 21:02:29 2015 from 192.168.0.111
[root@mailCentOS6 ~]# ls .ssh/ #看到了沒有,我們現在已經登錄到了mailCentOS6這台主機上了;
authorized_keys known_hosts
【命令補充】
scp: 利用ssh協議在主機之間實現安全文件傳輸的工具
scp SRC1... DEST
分兩種情形:
1、源文件在本機,目標為遠程主機
# scp /path/to/somefile... USERNAME@HOST:/path/to/somewhere
源可以是目錄或文件有多個,目標必須是目錄
2、源文件在遠程,本地為目標
# scp USERNAME@HOST:/path/to/somewhere /path/to/somewhere
-r: 復制目錄時使用(實現遞歸復制),scp默認不能復制目錄;
-p: 保持源文件的元數據信息,包括mode和timestamp
-q: 靜默模式,復制過程不顯示狀態信息;
-p PORT: 指定ssh協議監聽的埠(遠程主機)。
5. 新手vim 把文件加密了忘記密碼了怎麼辦
使用的什麼加密方法,回扒祥想密碼
之前使用U盤超咐此轎級加密3000軟體忘記了密碼,咨詢了工作人員,才知道還有密碼找回的功能衡肆。
6. 編程需要什麼工具
軟體開發需要的工具和知識很雜,一般情況下包括:
工具:
你需要一個集成開發環境,主流的是VisualStudio。
「集成」的意思是,它是很多工具的集合,主要包括:
源代碼編輯:你也可以用VIM,但是這個在Windows開發中非主流,用戶多為從Linux過來的。
代碼編譯器:把源代碼編譯成可執行文件的工具,這其實也是一套工具,有編譯代碼的(如編譯C#的csc),有編譯資源的,有控制編譯流程的工具(msbuild),有代碼自動生成工具,有對程序集進行簽名的工具。有興趣可以看看WindowsSDK。
代碼測試工具:有知名的NUnit,其實VisualStudio也自帶一套,而且賣鍵比Nunit強很多,對UI測試有十分良好的支持。比如UI錄制操作,用於回放測試。
源代碼管理工具:VisaulStudio也有伺服器端產品,叫TeamFoundationServer,其中便有源代碼管理的功能。當然,VisualStudio也可以與Git,Perforce,SVN等其它源代碼管理工具集成。中亮巧
Profiling工具:對代碼的運行進行動態分析,通過HotPath分析性能瓶頸。
需求與變更管理工具:管理你軟體上的Bug以用戶提出的(哪怕是你自己想的)需求。有很多的開源替代品,但是有提供這個功能。
UI與UX設計工具:界面設計分原型設計(mockup)與界面開發。原型設計常用balsamiq。界面開發根據你使用的技術有所不同。如果使用MFC或是WinForm,基本上只能找專門美工畫圖。而簡單地應用皮膚庫,除了讓你的界面眼花繚亂外,在UX上沒有實質性的助益。如果使用WPF,微軟有ExpressionBlend和ExpressionDesign負責UX和與UI,是介於開發和美工中間的一類角色。
除了VS外,如果是多人開發一般還會需要搭建:持續集成環境,常見的工具是TeamCity或是
p>。
溝通平台,常見的是用Email和各種IM,還可以用Wiki或是SharePoint保存每個人的知識和分享。如果時髦些,可以搭一個Jive。
知識方面(假設已經是一個程序員):
開發一個軟體,比如QQ之前,你應該有一定的軟體開發基礎,但是並不需要先把所有需要的技術了解的一清二楚,沒有那個時間,也沒有意義。就算你知道你要做的東西需要演算法知識,你需要把《演算法導論》先拿來看一遍嗎?開發軟體最重要的,是對每個功能問出下面的問題:
要做什麼?做成什麼樣?要達到怎麼的效果?
要做到這些,存在哪些沒有解決的問題?
有哪些
現有的技術
可以用來解決這個問題?如何驗證結果?
然後才是去了解那些需要用的技術去解決你的問題。
至於具體的知識上面列出的工具要會用吧。
熟悉開發流鍵清程。這非常重要,比如Commit代碼的流程,發布新版本的流程,什麼時候做Branch。這些
不一定要正經地文檔化,但是一定要在團隊內部達成共識
,否則開發過程就是一片混亂。(人有可能覺得這和問題沒直接關系,但是要知道現在的軟體開發基本沒有一個人進行的,一個人的叫玩玩,愛怎麼搞怎麼搞。)軟體銷售。這決定了你的軟體
1.是否需要數字版權保護機制2.是否需要接入支付體系
軟體運營。這決定了你的軟體
1.是否需要技術支持?通過什麼途徑提供技術支持?2.是否需要收集用戶信息?收集什麼信息?實名還是匿名?
3.是否使用第三方服務來降低運營和維護成本?(自己Host還是租?要不要使用GAE構建伺服器端?)
當地法律。根據當地法律,你的軟體,可能會被要求具有下列功能中的一部分:
1.用戶信息保護2.敏感內容過濾3.審查。(誰在用,用了哪些功能)有人可能覺會得上面這些點太大太泛,但這些的確是開發一款軟體要考慮的事情,而且是一開始就要考慮的事情。沒太明白題主具體到「Windows」的目的是什麼。上面這些,無論是什麼平台上的軟體,都存在這些問題。Windows之於Linux或是Mac的不同,也就是使用的技術框架上有些差異,這些而差異對於程序員而言不應該是什麼問題。因為原理都是一樣的,一樣的演算法,一樣的TCP鏈接傳數據,一樣的數據加密,甚至可以做出一樣的界面統一用戶體驗。(當然你也可以做得完全不一樣。)7. mysql密碼忘記了怎麼辦
如下:
1、找到my.cnf配置文件的位置。
2、修改 my.cnf。如果你是 root 用戶,直接vim /etc/my.cnf 。如果你是普通用戶 , sudo vim /etc/my.cnf。
進入vim編輯器編輯之後,找到 [mysqld] ,按鍵盤的 i 鍵進入編輯模式,在[mysqld]後面任意一行添加 skip-grant-tables 用來跳過密碼驗證的過程。按 ESC 退出編輯,鍵入 :wq ,回車即保存並退出。
3、重啟 mysqld 服務。
4、無密進入MySQL。出現Entering password 無需理會,回車即可進入 MySQL 資料庫。
5、修改root密碼進入到 MySQL 資料庫之後,我們就可以更新 "mysql"資料庫中「user」表的 root 記錄的密碼了。
如何查看mysql 的用戶名和密碼?
如果在安裝過程中沒有設置用戶名密碼的話,你可以用root用戶名與密碼登錄資料庫:用戶名:root, 密碼為空。進入以後我們可以執行select * from MySQL.user;查詢MySQL的用戶信息,可以看到密碼是加密的。
所以說,如果設置過密碼但是忘記了,那不好意思了,是不能進行查看密碼的,只能查看用戶名,因為MySQL密碼是動態md5加密,是不可逆向查詢的。注意牢記MySQL安裝的時候設置的密碼,或者直接不設置密碼。
8. 怎麼給網站域名後面的目錄加密顯示
Apache即可實現目錄加密顯示:
Apache對網站目錄加密是用.htaccess文件進行設置,在.htaccess文件中寫入:
AuthType Basic
AuthName "WORKING CENTER"
AuthUserFile /home/user/.htpasswd
Require valid-user
再生成相應的密碼文件.htpasswd(該文件名可以隨意,不過必須與.htaccess中相同):
user:I/CrS5Tm.EPGc
以上是.htpasswd中的內容,user部分是用戶名,「:」號後面的是加密後的密碼,該密碼可以用一個腳本生成:
#!/usr/bin/perl
usestrict;
my
$passWord=$ARGV[0];
print
crypt($passWord,$passWord)."\n";
將以上內容寫入,腳本中:vim pass.pl
注意:.htaccess文件是放在需要加密的目錄下,上傳好後apache不需要重啟,.htpasswd密碼文件不要放在網站目錄下,路徑不要寫錯!
該密碼文件有相關工具可以生成,htpasswd命令,比如:
#htpasswd –bc .htpasswd user passuser
這樣就會在當前目錄下生成帶有用戶名為user,密碼為passuser的.htpasswd文件。
9. vim如何加密,刪除密碼
vim加密的方法是:
在打開的文件中,esc退出編輯模式。之後按下 :X(也就是冒號和大寫字母X),這時vim會讓你輸入自定義的密碼,重復兩遍後文件就被加密了。加密後的文件在再次打開時都需要輸入密碼,否則顯示為錯亂的內容。
解密的方法是:
在正確打開的加密文件中,輸入
:set key=
之後保存退出,當再次打開文件時就無需輸高猛入早哪密碼了。上一個命令的陸念碼作用是將保存密碼的變數key的值設定為空,密碼為空了也就相當於沒有密碼了。
10. linux如何修改用戶主目錄
1、打開操作系統,切換到要修改的文件或目錄的父目錄。注意,首先切換到root用戶群進行更改。